Ignore:
Timestamp:
Jun 5, 2008, 10:04:39 PM (16 years ago)
Author:
dai_9181
Message:

ジェネリッククラスの型パラメータに値型が指定されたときに限り、テンプレート展開を行うようにした。

TODO: libファイルを跨ってテンプレート展開ができていないため、ソースコード管理部分に手を加える必要あり。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ab_common/include/Lexical/Procedure.h

    r604 r632  
    2424    Type returnType;
    2525
     26private:
    2627    // ソースコードの位置
    27     int codePos;
     28    SourceCodePosition sourceCodePosition;
    2829
    2930    // XMLシリアライズ用
     
    4041        ar & BOOST_SERIALIZATION_NVP( params );
    4142        ar & BOOST_SERIALIZATION_NVP( returnType );
    42         ar & BOOST_SERIALIZATION_NVP( codePos );
     43        ar & BOOST_SERIALIZATION_NVP( sourceCodePosition );
    4344    }
    4445
     
    4950        , isCdecl( isCdecl )
    5051        , isUsing( false )
    51         , codePos( -1 )
    5252    {
    5353    }
     
    8383    }
    8484
    85     int GetCodePos() const
    86     {
    87         return codePos;
    88     }
    89     void SetCodePos( int codePos )
    90     {
    91         this->codePos = codePos;
     85    const SourceCodePosition &GetSourceCodePosition() const
     86    {
     87        return sourceCodePosition;
     88    }
     89    void SetSourceCodePosition( const SourceCodePosition &sourceCodePosition )
     90    {
     91        this->sourceCodePosition = sourceCodePosition;
    9292    }
    9393
     
    178178public:
    179179
    180     UserProc( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const std::string &name, Kind kind, bool isMacro, bool isCdecl, bool isExport )
    181         : Procedure( namespaceScopes, name, kind, isCdecl )
    182         , importedNamespaces( importedNamespaces )
    183         , pParentClass( NULL )
    184         , pInterface( NULL )
    185         , pMethod( NULL )
    186         , isMacro( isMacro )
    187         , secondParmNum( 0 )
    188         , realSecondParmNum( 1 )
    189         , isExport( isExport )
    190         , isSystem( false )
    191         , isAutoGeneration( false )
    192         , isCompiled( false )
    193         , beginOpAddress( 0 )
    194         , endOpAddress( 0 )
    195     {
    196         static int id_base=0;
    197         id = ( id_base ++ );
    198     }
    199     UserProc()
    200     {
    201     }
    202     ~UserProc()
    203     {
    204         BOOST_FOREACH( Parameter *pParam, realParams ){
    205             delete pParam;
    206         }
    207     }
     180    UserProc( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const std::string &name, Kind kind, bool isMacro, bool isCdecl, bool isExport );
     181    UserProc( const UserProc &userProc, const CClass *pParentClass );
     182    UserProc();
     183    ~UserProc();
    208184
    209185    void SetReturnType( const Type &newReturnType )
Note: See TracChangeset for help on using the changeset viewer.