我正在从功能的代码行下运行

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;某处。我建议您摆脱它,这比其他任何事情都更加令人困惑。

10-06 02:06