主要代码:
using TransMap = unordered_map<::string,astring>;
///返回得到的语言数量
TransMap *currentTranslates
unordered_map<::string,TransMap> summTrans;
TransMap d;
string n = ...;
astring a = ...;
d.insert(std::make_pair<string,astring>(n,a));
报错:
error: no matching function for call to 'make_pair<std::__cxx11::string, alib::astring>(std::__cxx11::string&, alib::astring&)'|
就奇怪,不是value支持自定义的类型吗,key的话写个hash函数也支持自定义类型
另外astring虽然是dll类,但是已经用了extern "C"改编,并且刚才我不改编它编译后仍然报同样的错误
如果使用自动推导又会出现这样的错误:
error: no matching function for call to 'std::unordered_map<std::__cxx11::basic_string<char>, alib::astring>::insert(std::pair<std::__cxx11::basic_string<char>, alib::astring>)'|
//他这个函数搁这隔这呢!
平台:
Windows
C++17
G++: gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)