我有一个模板化的类foo,它具有模板化的成员函数。我对模板化函数的特化有问题。
template<typename T, int x...>
class foo_c
{
...
template<int n>
int foo() { return n; }
};
template<>
template<>
int foo_c<int,1>::foo<0>() { return 0; }
上面的代码编译,但我需要foo_c是通用的,当向模板添加任何东西时,我得到编译器错误。
问题:
修改
尝试
template<typename T, int x, int y>
template<>
int foo_c<T,x,y>::foo<0>() { return 0; }
错误
error: invalid explicit specialization before '>' token
error: enclosing class templates are not explicitly specialized
error: expected initializer before '<' token