如何通过引用传递的参数显式实例化模板函数?
我有一个简单的模板化函数,它可以采用任何类型并将其转换为字符串:
template <typename T>
string to_string (const T &e) {
std::stringstream ss;
string str;
ss << e;
ss >> str;
return str;
}
注意,参数参数e
通过引用传递。
我现在想为不同的数据类型显式实例化该函数,例如:
template string to_string<string> (string);
template string to_string<double> (double);
但是,编译器抱怨(由于显式实例化:]:>
错误:“ to_string”的显式实例化未引用函数模板,变量模板,成员函数,成员类或静态数据成员
模板字符串to_string(string);
[如果我将模板化函数的参数从
const T &e
更改为const T e
-即删除引用-它将编译并正常工作。
如何通过引用传递的参数显式实例化模板函数?
工具链:
如何通过引用传递的参数显式实例化模板函数?我有一个简单的模板化函数,该函数可以采用任何类型并将其转换为字符串:template
您也应该在显式实例化中将参数指定为引用。否则,它们将与功能模板的签名不匹配。例如。如果T
为double
,则参数类型const T&
应该为const double&
。