Ignore:
Timestamp:
Jun 12, 2008, 11:30:50 PM (16 years ago)
Author:
dai_9181
Message:

静的リンクリンカの依存関係解決モジュールを製作中

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ab_common/src/Lexical/Class.cpp

    r637 r639  
    869869}
    870870
    871 bool CClass::Resolve()
    872 {
    873     // TODO: Resolve
     871bool CClass::Resolve( const ObjectModule &resolver )
     872{
     873    // 型パラメータ
     874    BOOST_FOREACH( GenericType &genericType, formalGenericTypes )
     875    {
     876        genericType.GetType().Resolve( resolver );
     877    }
     878
     879    // 基底クラス
     880    if( this->pSuperClass )
     881    {
     882        if( this->pSuperClass->IsNeedResolve() )
     883        {
     884            this->pSuperClass = resolver.meta.GetClasses().FindEx( *pSuperClass );
     885        }
     886    }
     887
     888    // 基底クラスの型パラメータ(実パラメータ)
     889    BOOST_FOREACH( Type &superClassActualTypeParameter, superClassActualTypeParameters )
     890    {
     891        superClassActualTypeParameter.Resolve( resolver );
     892    }
     893
     894    // Blittable型情報
     895    blittableType.Resolve( resolver );
     896
     897    // 実装するインターフェイス
     898    BOOST_FOREACH( ::Interface *pInterface, interfaces )
     899    {
     900        pInterface->Resolve( resolver );
     901    }
     902
     903    // 動的メンバ
     904    BOOST_FOREACH( Member *pMember, dynamicMembers )
     905    {
     906        pMember->Resolve( resolver );
     907    }
     908
     909    // 静的メンバ
     910    BOOST_FOREACH( Member *pMember, staticMembers )
     911    {
     912        pMember->Resolve( resolver );
     913    }
     914
     915    // 動的メソッド
     916    BOOST_FOREACH( CMethod *pMethod, GetDynamicMethods() )
     917    {
     918        pMethod->Resolve( resolver );
     919    }
     920
     921    // 静的メソッド
     922    BOOST_FOREACH( CMethod *pMethod, staticMethods )
     923    {
     924        pMethod->Resolve( resolver );
     925    }
     926
     927    // テンプレート展開後のクラス
     928    BOOST_FOREACH( ActiveBasic::Common::Lexical::ExpandedTemplateClass *pExpandedTemplateClass, expandedTemplateClasses )
     929    {
     930        pExpandedTemplateClass->Resolve( resolver );
     931    }
     932
    874933    return true;
    875934}
Note: See TracChangeset for help on using the changeset viewer.