// ConfigurationContext.h
class ConfigurationContext
{
public:
template<typename T> T getValue(const std::string& name, T& default) const
{
...
}
}
在其他地方我想这样调用这个方法:
int value = context.getValue<int>("foo", 5);
出现以下错误:
error: no matching function for call to 'ConfigurationContext::getValue(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int)'
我检查了一些明显的错误,比如缺少包含之类的。但一切似乎都是对的。我尝试删除模板类型参数的pass by reference,如下所示:
template<typename T> T getValue(const std::string& name, T default) const ...
有人知道这里发生了什么,以及如何让这一切顺利进行吗?