编译我的代码时,我收到以下错误。如果只有一个候选人,为什么会抛出错误?为什么它不能使用它?C++编译错误只有一个候选函数
error: no matching function for call to '
TemplateParameters::reset_template_params( const char [8], const char [11], std::vector<const Channel*>, bool, std::map<int, String, std::less<int>, std::allocator<std::pair<const int, String> > >& )
'
note: candidates are:
void TemplateParameters::reset_template_params( String, String, std::vector<const Channel*>&, bool, std::map<int, String, std::less<int>, std::allocator<std::pair<const int, String> > >& )
'String'参数是可疑的。 ('std :: vector&'也可能会被怀疑)。可能没有可用的转换序列将'const char [8]'或'const char [11]'转换为'String '。你可能需要在你调用'reset_template_params'的地方发布代码片段(这样我们就可以看到你实际传递的是什么),并且提到实际是什么(字符串)(它当然不是'std :: string')我可以告诉)。 –
2011-06-13 12:16:28
我冒昧地设置了错误信息的格式,以便它至少具有基本的可读性。下次你可以自己做这个。 – 2011-06-13 12:17:01
@In silico:为什么要在评论中发布答案? – Dani 2011-06-13 12:20:36