我在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;
}
// ...
}
确切错误:
最佳答案
它可以使用显式强制转换吗?
if (id)
Cache.insert(make_pair<int, Quest*>(int(*id), NULL));
另外,真的有9000行的cpp文件吗?