我在g中得到了这个奇怪的错误;它在Visual Studio中编译得很好.
- struct Quest
- {
- static map<int,Quest*> Cache;
- };
- Quest *Quest::LoadFromDb(BaseResult& result,int *id)
- {
- Quest *ret;
- if(result.Error())
- {
- if(id)
- Cache.insert(make_pair<int,Quest*>(*id,NULL)); // <--- Problematic line
- return NULL;
- }
- // ...
- }
确切的错误:
DataFilesStructure.cpp:9135:58: error: no matching function for
call to ‘make_pair(int&,Quest*)’
解决方法
它是否适用于明确的演员?
- if (id)
- Cache.insert(make_pair<int,Quest*>(int(*id),NULL));
还有一个9000行的cpp文件,真的吗?