我在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文件吗?

08-06 01:04