【发布时间】:2012-09-04 09:08:42
【问题描述】:
我有一个类模板,我们称之为A,它有一个成员函数abc():
template <typename T>
class A{
public:
T value;
void abc();
};
我可以在类声明之外实现成员函数abc(),使用如下语法:
template <typename T>
void A<T>::abc()
{
value++;
}
我想做的是为这个类创建一个模板特化,比如说int。
template <>
class A<int>{
public:
int value;
void abc();
};
问题是:为专用类实现abc() 的正确语法是什么?
我尝试使用以下语法:
template <>
void A<int>::abc()
{
value += 2;
}
但是这不能编译。
【问题讨论】:
-
顺便说一句,如果您没有专门化整个类模板,您的语法也会起作用。您可以专门化各个成员函数。
标签: c++ templates syntax template-specialization