我在函数
的代码行下面运行string internalPath(os.str());
m_tags.insert(make_pair<string, TagConfig >(internalPath, tagConfig ));
error: no matching function for call to ‘make_pair(std::string&, const wicom::TagConfig&)’
m_tags.insert(make_pair<string, TagConfig >(internalPath, tagConfig ));
^
编译器g ++ = C ++ 14
答案 0 :(得分:2)
您永远不应为std::make_pair
明确指定模板参数 - 它用于推断它们,因为它使用完美转发。要么摆脱它们:
m_tags.insert(make_pair(internalPath, tagConfig ));
或者如果您需要明确指定它们,请直接使用std::pair
:
m_tags.insert(pair<string, TagConfig >(internalPath, tagConfig ));
作为旁注,您似乎有using namespace std
;某处。我建议你摆脱它,它比其他任何东西都混淆了。