定义
template <typename T>
class A {
public:
// 成员函数模板---------定义置于类内
template <typename F>
F fun1(T t, F f) {
return F();
}
// 成员函数模板---------定义置于类外
template <typename F>
F fun2(T t, F f);
};
// 成员函数模板的定义
template <typename T>
template <typename F>
F A::fun2(T t, F f) {
return F();
}
特化
template <typename T>
class A {
public:
// 成员函数模板---------定义置于类内
template <typename F>
F fun(T t, F f) {
return F();
}
// 成员函数模板特化---------不可以将定义置于类外
template <int>
int fun(T t, int f) {
return 0;
}
};
// 无法在类外定义成员函数模板的特化
//template <typename T>
//template <>
//int A::fun(T t, int f) {
// return 0;
//}
注意事项