-1

我对 std::enable_if 很陌生,想知道如何使用它。我有一个模板类:

template<int a, int b>
class foo {
  int c;
}

我只希望模板有成员 c

a = 5. 

如何使用 std::enable_if 做到这一点?这是使用 std::enable_if 的正确案例吗?

4

1 回答 1

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
于 2012-11-08T04:54:37.733 回答