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