作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
例如:
template<unsigned number>
struct A
{
template<class T>
static void Fun()
{}
};
template<>
struct A<1>
{
template<class T>
static void Fun()
{
/* some code here. */
}
};
并且想要专门化 A<1>::Fun()
template<>
template<>
void A<1>::Fun<int>()
{
/* some code here. */
}
好像不行。怎么做?谢谢。
最佳答案
类模板的显式特化就像一个普通类(它是完全实例化的,所以它不是参数类型)。因此,您不需要外部 template<>
:
// template<> <== NOT NEEDED: A<1> is just like a regular class
template<> // <== NEEDED to explicitly specialize member function template Fun()
void A<1>::Fun<int>()
{
/* some code here. */
}
同样,如果你的成员函数Fun
不是函数模板,而是常规成员函数,您不需要任何 template<>
完全:
template<>
struct A<1>
{
void Fun();
};
void A<1>::Fun()
{
/* some code here. */
}
关于c++ - 如何专门化模板类中的模板成员函数(已经专门化)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17503697/
我有一个带有模板函数的基类,该函数具有通用模板类型和专用版本。 #ifndef BASE_CLASS #define BASE_CLASS #include using namespace std;
我有这个 3D vector 模板 template class Vec3TYPE{ public: union{ struct{ TYPE x,y,z; }; struct{ TY
我是一名优秀的程序员,十分优秀!