Edu*_*yan 1 c++ templates traits specialization template-specialization
请考虑以下示例:
template <class T, class U>
class Test {
public:
void f(){std::cout<<"f() not specized"<<std::endl;}
void g(){std::cout<<"g() not specized"<<std::endl;}
void h(){std::cout<<"h() not specized"<<std::endl;}
//void g<long, double>(){}
};
Run Code Online (Sandbox Code Playgroud)
这里我对注释代码有错误.我想实现预期结果的唯一方法是将整个班级空间化.但是在下面提到的类中,我不能使用原始类的默认行为(例如f(f()和h()函数).
template <>
class Test<long, double> {
public:
void f(){std::cout<<"f() specized long, double"<<std::endl;}
};
Run Code Online (Sandbox Code Playgroud)
那么有没有办法在原始类中对函数进行空间化?
template<>
void Test<long, double>::f(){std::cout<<"f() specialized long, double"<<std::endl;}
Run Code Online (Sandbox Code Playgroud)