我对std :: enable_if很新,并想知道如何使用它。 我有一个模板类:
template<int a, int b>
class foo {
int c;
}
我只希望模板在
时有成员ca = 5.
如何使用std :: enable_if执行此操作? 这是使用std :: enable_if的正确案例吗?
答案 0 :(得分:3)
您可以使用部分特化。无需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