+-
c – 无法将参数1从int转换为int \u0026\u0026错误
参见英文答案 > Weird compiler error: Cannot convert parameter from ‘int’ to ‘int &&’                                    4个
今天我想尝试将我的项目从visual c 2010带到visual c 2013.

我在visual c 2013中遇到了这个错误,这是我在编译2010版时没有得到的.

//somewhere in the SimpleObject_list class
std::unordered_map<std::string, SimpleObject *> Object_list; 


//method which is giving me the error
void SimpleObject_list::Add(const char *Object_name, SimpleObject * Object_pointer){
    cout << "SimpleObject listed as: " << Object_name << endl;
    Object_list.insert(std::make_pair<std::string,SimpleObject *>(Object_name, Object_pointer));
}

错误是:

error C2664: 'std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,SimpleObject *> std::make_pair<std::string,SimpleObject*>(_Ty1 &&,_Ty2 &&)' : cannot convert argument 2 from 'SimpleObject *' to 'SimpleObject *&&'

我究竟做错了什么?为什么我在vc 2010中没有收到任何错误?

谢谢

最佳答案
更改

Object_list.insert(std::make_pair<std::string,SimpleObject *>(Object_name, Object_pointer));

Object_list.insert(std::make_pair(Object_name, Object_pointer));
点击查看更多相关文章

转载注明原文:c – 无法将参数1从int转换为int \u0026\u0026错误 - 乐贴网