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/src/Lexical/Procedure.cpp

    r603 r632  
    11#include "stdafx.h"
     2
     3int id_base = 0;
     4
     5UserProc::UserProc( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const std::string &name, Kind kind, bool isMacro, bool isCdecl, bool isExport )
     6    : Procedure( namespaceScopes, name, kind, isCdecl )
     7    , importedNamespaces( importedNamespaces )
     8    , pParentClass( NULL )
     9    , pInterface( NULL )
     10    , pMethod( NULL )
     11    , isMacro( isMacro )
     12    , secondParmNum( 0 )
     13    , realSecondParmNum( 1 )
     14    , isExport( isExport )
     15    , isSystem( false )
     16    , isAutoGeneration( false )
     17    , isCompiled( false )
     18    , beginOpAddress( 0 )
     19    , endOpAddress( 0 )
     20    , id( id_base ++ )
     21{
     22}
     23
     24UserProc::UserProc( const UserProc &userProc, const CClass *pParentClass )
     25    : Procedure( userProc )
     26    , _paramStr( userProc._paramStr )
     27    , importedNamespaces( userProc.importedNamespaces )
     28    , pParentClass( pParentClass )
     29    , pInterface( NULL )
     30    , pMethod( NULL )
     31    , isMacro( userProc.isMacro )
     32    , secondParmNum( userProc.secondParmNum )
     33    , realParams( userProc.realParams )
     34    , realSecondParmNum( userProc.realSecondParmNum )
     35    , isExport( userProc.isExport )
     36    , isSystem( userProc.isSystem )
     37    , isAutoGeneration( userProc.isAutoGeneration )
     38    , isCompiled( false )
     39    , beginOpAddress( 0 )
     40    , endOpAddress( 0 )
     41    , localVars( Variables() )
     42    , id( id_base ++ )
     43    , nativeCode( NativeCode() )
     44{
     45}
     46
     47UserProc::UserProc()
     48{
     49}
     50
     51UserProc::~UserProc()
     52{
     53    BOOST_FOREACH( Parameter *pParam, realParams ){
     54        delete pParam;
     55    }
     56}
    257
    358bool UserProc::IsEqualForOverride( const Types &actualTypeParametersForThisProc, const UserProc *pUserProc ) const
     
    54109const NamespaceScopes &UserProc::GetNamespaceScopes() const
    55110{
    56     if( HasParentClass() ){
     111    if( HasParentClass() )
     112    {
    57113        return GetParentClassPtr()->GetNamespaceScopes();
    58114    }
Note: See TracChangeset for help on using the changeset viewer.