Boost 同时具有enable_if和disable_if,但 C++0x 似乎缺少后者。为什么它被遗漏了?disable_ifC++0x中是否有元编程工具允许我构建enable_if?
哦,我刚刚注意到std::enable_if基本上是,并且在 C++0x 中boost::enable_if_c没有这样的东西。boost::enable_if
冒着看起来很愚蠢的风险,只需在 bool 模板参数中做!expression而不是让它表现得像? 当然,如果这个想法有效,您可以扩展它以编写具有类似行为的类?expressionenable_ifdisable_ifdisable_if
好的,我相信你可以这样实现disable_if:
template <bool B, typename T = void>
struct disable_if {
typedef T type;
};
template <typename T>
struct disable_if<true,T> {
};