【发布时间】:2012-07-06 14:07:21
【问题描述】:
我有一个模板类,它的某些成员函数只有在模板参数满足某些条件时才有意义。例如,使用std::enable_if<> 我只能为这些情况定义它们,但我如何有条件地调用它们呢?这是一个简单的例子
template<class T> class A
{
typename std::enable_if<std::is_floating_point<T>::value>::type a_member();
void another_member()
{
a_member(); // how to restrict this to allowed cases only?
}
};
【问题讨论】:
-
你想在编译时删除它们,在编译时出错,还是在运行时知道?
-
如何为其余类型(不是浮点)提供一个空的 a_member 重载。
-
@Linuxios 只是不在运行时调用它们,在编译时这种类型不存在。
-
@mfontanini 你能让我的例子用这个吗?
-
乔的回答正是我的意思:D.