我有一个带有可变数量的模板化参数的模板化类。在这些情况下(我买不起 C++11),一个好的做法是创建一个我们调用的默认类none
并将其设置为默认类,如下所示。
struct none {};
template<class T1=none, T2=none, T3=none>
class A{
template<class T>
double extract() { return none();}
template<>
double extract<T1>() { return m1_();}
template<>
double extract<T2>() { return m2_();}
template<>
double extract<T3> () { return m3_();}
T1 m1_;
T2 m2_;
T3 m3_;
};
在这个阶段,我不知道如何实现可以访问每个模板化参数的通用/模板化访问器函数。
所有的模板化参数都是不同的,所以我为每个模板化参数专门化了 A::extract()。
有没有更好的方法来做到这一点?我可以看看任何类型的标签吗?