c – 错误:没有匹配函数来调用’make_pair(int&,Quest *)’

前端之家收集整理的这篇文章主要介绍了c – 错误:没有匹配函数来调用’make_pair(int&,Quest *)’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在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文件,真的吗?

猜你在找的C&C++相关文章