テンプレート化された引数の可変数を持つテンプレート化されたクラスがあります。これらの場合 (私は 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() を特殊化しました。
これを行うより良い方法はありますか?私が見ることができるタグ付けの種類はありますか?