3
我想知道为什么下面的代码是有效的使用std ::对构造函数:Multimap之插入钥匙所属类别用的std :: make_pair VS的std ::对构造
代码:
std::multimap< std::type_index, void * > mm;
mm.insert(std::pair<std::type_index, void *>(typeid(int), 0));
而且给使用std编译时错误:: make_pair:
错误:
C2248 'type_info::type_info' cannot access private member declared in class 'type_info'
代码:
std::multimap< std::type_index, void * > mm;
mm.insert(std::make_pair(typeid(int), 0));
任何线索?谢谢 !
有什么错'的std :: pair'或'的std :: make_pair'。 'type_info'必须有一个公共构造函数。 –
与你的问题无关,但*为什么*你有一个从'type_info'到'void *'的映射?映射的目的是什么?什么是用例?你有什么问题?对我来说,它的设计很糟糕。 –
由于您使用的是C++ 11,我认为'mm.emplace(typeid(int),0)'会更好。 – user1887915