このクラスを検討してください。
template<class T, int select>
class Foo()
{
public:
Foo() {}
~Foo() {}
Param<select> value;
void SomeInitialization();
...
}
select
テンプレートパラメータリストに値を明示的に記載せずに、SomeInitialization()関数を部分的に指定できますか?たとえば、関数の実現を1つにマージしたいと思います。
template<>
void Foo<SomeClass, 0>::SomeInitialization() { ... }
template<>
void Foo<SomeClass, 1>::SomeInitialization() { ... }
template<>
void Foo<SomeClass, 2>::SomeInitialization() { ... }
このようなものに(擬似コード):
template<>
void Foo<SomeClass>::SomeInitialization() { ... }
私の関数のコードはとにかくそれを使用せず、上記のすべての関数は同じコードを持っているので、ここselect
で任意の値を指定できますが、すべての値に対してコピーして貼り付ける必要があります。SomeInitialization()
select
どうすればそれを達成できますか?Foo
私の投稿でサンプルクラスを使用して回答を提供してください。