私はstd::enable_ifにまったく慣れておらず、それをどのように使用するのか疑問に思っています。テンプレートクラスがあります:
template<int a, int b>
class foo {
int c;
}
テンプレートにメンバーcを持たせたいのは
a = 5.
std :: enable_ifを使用してこれを行うにはどうすればよいですか?これはstd::enable_ifを使用する正しいケースですか?
部分的な特殊化を使用できます。の必要はありませんstd::enable_if
。
//primary template
template<int a, int b>
class foo
{
//whatever
};
//partial specialization
template<int b>
class foo<5,b> //when a = 5, this specialization will be used!
{
int c; //it has member c
};
使用法:
foo<1,3> f1; //primary template is used
foo<5,3> f2; //partial specialization is used