Changeset 90 in dev for BasicCompiler_Common/ParamImpl.cpp
- Timestamp:
- Apr 7, 2007, 3:02:29 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/ParamImpl.cpp
r84 r90 10 10 #define OVERLOAD_MAX_LEVEL 4 11 11 #define OVERLOAD_LEVEL0 0 // 型調整なし。厳密に等しい 12 #define OVERLOAD_LEVEL1 1 // 型調整なし。整数型/実数型レベルでの同一性チェック 13 #define OVERLOAD_LEVEL2 2 // 型調整あり。厳密に等しい 14 #define OVERLOAD_LEVEL3 3 // 型調整あり。整数型/実数型レベルでの同一性チェック 15 #define OVERLOAD_LEVEL4 4 // 型調整あり。数値型/クラス型レベルでの同一性チェック 12 #define OVERLOAD_LEVEL1 1 // 型調整なし。レベル1以上はオブジェクトの場合は派生関係を考慮 13 #define OVERLOAD_LEVEL2 2 // 型調整なし。整数型/実数型レベルでの同一性チェック 14 #define OVERLOAD_LEVEL3 3 // 型調整あり。厳密に等しい 15 #define OVERLOAD_LEVEL4 4 // 型調整あり。整数型/実数型レベルでの同一性チェック 16 #define OVERLOAD_LEVEL5 5 // 型調整あり。数値型/クラス型レベルでの同一性チェック 16 17 17 18 ParamImpl::ParamImpl(const char *buffer): … … 127 128 128 129 NumOpe_GetType(Parms[i], 129 ( level==OVERLOAD_LEVEL0 || level == OVERLOAD_LEVEL1)? nullParam : param,130 ( level <= OVERLOAD_LEVEL2 )? nullParam : param, 130 131 argType); 131 132 } … … 135 136 136 137 if(argType.GetBasicType()!=param.GetBasicType()){ 137 if( level == OVERLOAD_LEVEL0 || level ==OVERLOAD_LEVEL2){138 if( level == OVERLOAD_LEVEL0 || level == OVERLOAD_LEVEL1 || level==OVERLOAD_LEVEL3 ){ 138 139 return false; 139 140 } 140 else if( level == OVERLOAD_LEVEL 1 || level==OVERLOAD_LEVEL3){141 else if( level == OVERLOAD_LEVEL2 || level==OVERLOAD_LEVEL4){ 141 142 if(!( 142 143 argType.IsWhole()&¶m.IsWhole()|| … … 146 147 } 147 148 } 148 else if(level==OVERLOAD_LEVEL 4){149 else if(level==OVERLOAD_LEVEL5){ 149 150 if(argType.IsObject()||param.IsObject()) return false; 150 151 } … … 158 159 } 159 160 else if( NATURAL_TYPE(argType.GetBasicType())==DEF_OBJECT ){ 160 if( !param.GetClass().IsEqualsOrSubClass( &argType.GetClass() ) ){ 161 return false; 161 if( level == OVERLOAD_LEVEL0 ){ 162 if( !param.GetClass().IsEquals( &argType.GetClass() ) ){ 163 return false; 164 } 165 } 166 else{ 167 if( !param.GetClass().IsEqualsOrSubClass( &argType.GetClass() ) ){ 168 return false; 169 } 162 170 } 163 171 } … … 191 199 192 200 pUserProc = pTempUserProc; 193 break;194 201 } 195 202 }
Note:
See TracChangeset
for help on using the changeset viewer.