我想基于它的类模板参数有条件地编译一个类的成员。我有便利功能,只有在某些条件下对编译器有意义,所以我希望编译器跳过它们,如果我能以编程方式确定何时这样。
// 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);
}
}
达到我想要的最佳方式是什么?