22

Boost 同时具有enable_ifdisable_if,但 C++0x 似乎缺少后者。为什么它被遗漏了?disable_ifC++0x中是否有元编程工具允许我构建enable_if


哦,我刚刚注意到std::enable_if基本上是,并且在 C++0x 中boost::enable_if_c没有这样的东西。boost::enable_if

4

1 回答 1

20

冒着看起来很愚蠢的风险,只需在 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> {
};
于 2010-06-24T14:58:08.237 回答