【发布时间】:2013-02-06 20:03:11
【问题描述】:
很抱歉问了这么简单的问题,但我无法轻易找到答案。 Google 对“C++ negation integral_constant”和类似查询没有任何有趣的说法。
在 C++11 中是否存在使 std::true_type 与 std::false_type 不同的特征,反之亦然?换句话说,我想要一些更易读的版本
std::is_same<my_static_bool, std::false_type>
我当然知道我可以自己写,但如果有的话我想使用现有的。
【问题讨论】:
-
做
!my_static_bool有什么问题? -
@DavidRodríguez-dribeas:我认为
my_static_bool是一个整数常数,所以他必须写std::integral_constant<bool, !my_static_bool::value>(故意没有::value)才能使它正确。 -
@ipc
constexproperator!可能会实现,但还没有尝试过。 -
@MaximYegorushkin:您不能对类型应用运算符。
-
@ipc:从上面的测试来看,
my_static_bool似乎可以是std::false_type(或者我想可能是std::true_type)。除此之外,我不太明白你的评论...std::integral_constant有一个constexpr转换运算符operator value_type()在std::false_type的情况下产生false,它可以与 一起使用不产生true常量表达式
标签: c++ c++11 template-meta-programming typetraits boost-mpl