类声明在class.h文件中:
template <typename K, typename T>
class classx
{
...
unsigned int func1(K key);
...
包括此class.hpp:
template <typename K, typename T>
unsigned int classx<K,T>::func1(K key)
{
return 1;
}
//Func1 for <int, typename T> ????
template <>
template <typename T>
unsigned int classx<int,T>::func1<int, T>(int key) // ERROR!
{
return 1;
}
结果:
错误:在'&lt;'标记
之前的预期初始值设定项这样做的正确方法是什么?
答案 0 :(得分:0)
从func1
定义和template <>
中删除第二组模板参数:
template <typename T>
unsigned int classx<int,T>::func1(int key)
{
return 1;
}
编辑:
此外,you cannot partially specialize a single function of a template class。如果您希望这样做,您将需要对整个班级进行部分专业化。