我认为对于了解模板的人来说这是微不足道的......
假设我们需要此模板类的两种不同实现,具体取决于N的值:
template <int N>
class Foo {
...
};
例如:
template <int N>
class Foo {
... // implementation for N <= 10
};
template <int N>
class Foo {
... // implementation for N > 10
};
我们怎样才能在C ++ 11中做到这一点?
答案 0 :(得分:20)
使用带有默认值的额外模板参数来区分案例:
template <int N, bool b = N <= 10>
class Foo;
template <int N>
class Foo<N, true> {
... // implementation for N <= 10
};
template <int N>
class Foo<N, false> {
... // implementation for N > 10
};