我正在从功能的代码行下运行
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
最佳答案
永远不要为std::make_pair
明确指定模板参数,这是为了推导它们,因为它使用了完美的转发。摆脱它们:
m_tags.insert(make_pair(internalPath, tagConfig ));
或者,如果您需要明确指定它们,请直接使用
std::pair
:m_tags.insert(pair<string, TagConfig >(internalPath, tagConfig ));
附带说明一下,您似乎有
using namespace std
;某处。我建议您摆脱它,这比其他任何事情都更加令人困惑。