Changeset 77 in dev for BasicCompiler_Common/ParamImpl.cpp
- Timestamp:
- Mar 22, 2007, 2:41:19 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/ParamImpl.cpp
r75 r77 93 93 //パラメータの個数が不一致の場合 94 94 int max = (int)targetParms.size(); 95 if(max!=ParmsNum){ 95 96 if( ParmsNum > max ){ 97 // 実引数が駆り引数より多いとき 98 // ※無条件で不一致 96 99 return false; 97 100 } … … 100 103 for(int i=0;i<max;i++){ 101 104 Parameter ¶m = *targetParms[i]; 105 106 if( i >= ParmsNum ){ 107 // 引数が多いとき 108 if( param.GetInitValue().size() > 0 ){ 109 // 初期値が指定されているパラメータを考慮 110 return true; 111 } 112 else{ 113 return false; 114 } 115 } 102 116 103 117 if(Parms[i]){ … … 125 139 } 126 140 else if(level==OVERLOAD_LEVEL3){ 127 if(argType.GetBasicType()==DEF_OBJECT||param.GetBasicType()==DEF_OBJECT) return 0;141 if(argType.GetBasicType()==DEF_OBJECT||param.GetBasicType()==DEF_OBJECT) return false; 128 142 } 129 143 } … … 222 236 223 237 return pUserProc; 238 } 239 240 void ParamImpl::ApplyDefaultParameters( const Parameters ¶ms ){ 241 if( ParmsNum == (int)params.size() ){ 242 // デフォルト引数の適用が不必要なとき 243 return; 244 } 245 246 while( ParmsNum < (int)params.size() ){ 247 Parameter ¶m = *params[ParmsNum]; 248 249 Parms[ParmsNum]=(char *)HeapAlloc(hHeap,0,param.GetInitValue().size() + 1 ); 250 lstrcpy(Parms[ParmsNum],param.GetInitValue().c_str() ); 251 ParmsNum++; 252 } 224 253 } 225 254
Note:
See TracChangeset
for help on using the changeset viewer.