Ignore:
Timestamp:
Jun 29, 2008, 2:08:44 AM (16 years ago)
Author:
dai_9181
Message:

#171への対応。テンプレート展開後のクラスメソッドの実装で、SizeOf(T)が正常値を返さない不具合を修正(特にTが4バイト未満の型場合)。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp

    r641 r672  
    351351}
    352352
     353int Compiler::SizeOf( const Type &type )
     354{
     355    Type tempType( type );
     356    if( this->IsCompilingClass() )
     357    {
     358        if( this->pCompilingClass->IsExpanded() && tempType.IsTypeParameter() )
     359        {
     360            // 現在コンパイル中のクラスがテンプレート展開済みのクラスで、
     361            // 尚且つターゲットとなる型が型パラメータだったとき
     362
     363            // テンプレート展開情報を用いて型解決を行う
     364            this->pCompilingClass->ResolveExpandedClassActualTypeParameter( tempType );
     365        }
     366    }
     367    return tempType.GetSize();
     368}
     369
    353370void Compiler::ClearCompilingUserProcAndClass()
    354371{
Note: See TracChangeset for help on using the changeset viewer.