如何根据类模板有条件地编译成员

时间:2014-06-09 12:37:42

标签: c++ templates sfinae

我想基于它的类模板参数有条件地编译一个类的成员。我有便利功能,只有在某些条件下对编译器有意义,所以我希望编译器跳过它们,如果我能以编程方式确定何时这样。

// T is a mathematical type
template <typename T>
class Foo {
public:
    // when zero is not clearly defined
    void bar(T a, T b, T zero) {

    }

    // only makes sense if 0 can be cast to T
    // will fail otherwise
    void bar(T a, T b) {
        bar(a, b, 0);
    } 
}
  • 我正在使用VS2012,很遗憾,没有默认的成员模板参数。 :(

达到我想要的最佳方式是什么?

0 个答案:

没有答案