Changeset 672 in dev for trunk/ab5.0/abdev/BasicCompiler_Common
- Timestamp:
- Jun 29, 2008, 2:08:44 AM (16 years ago)
- Location:
- trunk/ab5.0/abdev/BasicCompiler_Common
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler_Common/calculation.cpp
r598 r672 492 492 return false; 493 493 } 494 i64nums[pnum] = tempType.GetSize();494 i64nums[pnum] = compiler.SizeOf( tempType ); 495 495 StrPtr[pnum]=0; 496 496 } -
trunk/ab5.0/abdev/BasicCompiler_Common/include/Compiler.h
r636 r672 190 190 bool StringToType( const std::string &typeName, Type &type ); 191 191 const std::string TypeToString( const Type &type ); 192 193 // ジェネリック型の型パラメータ解決をサポートした上でSizeOf関数の戻り値を取得する 194 int SizeOf( const Type &type ); 192 195 193 196 void ClearCompilingUserProcAndClass(); -
trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp
r641 r672 351 351 } 352 352 353 int 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 353 370 void Compiler::ClearCompilingUserProcAndClass() 354 371 { -
trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp
r668 r672 1440 1440 _class.GetClassType(), 1441 1441 _class.GetFormalGenericTypes(), 1442 actualTypes,1442 _class.GetSuperClassActualTypeParameters(), 1443 1443 _class.GetConstructorMemberSubIndex(), 1444 1444 _class.GetDestructorMemberSubIndex(), 1445 1445 0, 1446 _class.GetFixedAlignment() 1446 _class.GetFixedAlignment(), 1447 actualTypes 1447 1448 ); 1448 1449
Note:
See TracChangeset
for help on using the changeset viewer.