【发布时间】:2012-08-20 12:29:19
【问题描述】:
考虑以下代码:
template<bool AddMembers> class MyClass
{
public:
void myFunction();
template<class = typename std::enable_if<AddMembers>::type> void addedFunction();
protected:
double myVariable;
/* SOMETHING */ addedVariable;
};
在此代码中,模板参数AddMembers 允许在类为true 时添加一个函数。为此,我们使用std::enable_if。
我的问题是:数据成员变量是否同样可能(可能有技巧)? (这样MyClass<false> 将有 1 个数据成员(myVariable),MyClass<true> 将有 2 个数据成员(myVariable 和 addedVariable)?
【问题讨论】:
标签: c++ templates c++11 metaprogramming enable-if