定义于头文件
<type_traits>
|
||
template<class B>
struct negation; |
(1) | (C++17 起) |
构建类型特性 B
的逻辑否定。
类型 std::negation<B> 是拥有基性质(BaseCharacteristic)为 std::bool_constant<!bool(B::value)> 的一元类型特性 (UnaryTypeTrait
) 。
目录 |
B | - | B::value 可转换到 bool 的任何类型 |
template<class B>
inline constexpr bool negation_v = negation<B>::value; |
(C++17 起) | |
value
[静态]
|
若B 拥有在隐式转换为bool 时等于false的::value 则为 true ,否则为 false (公开静态成员常量) |
operator bool
|
转换对象为 bool ,返回 value (公开成员函数) |
operator()
(C++14)
|
返回 value (公开成员函数) |
类型 | 定义 |
value_type
|
bool
|
type
|
std::integral_constant<bool, value> |
template<class B> struct negation : std::bool_constant<!B::value> { }; |
#include <iostream> #include <type_traits> static_assert( std::is_same< std::bool_constant<false>, typename std::negation<std::bool_constant<true>>::type>::value, ""); static_assert( std::is_same< std::bool_constant<true>, typename std::negation<std::bool_constant<false>>::type>::value, ""); int main() { std::cout << std::boolalpha; std::cout << std::negation<std::bool_constant<true>>::value << '\n'; std::cout << std::negation<std::bool_constant<false>>::value << '\n'; }
输出:
false true
(C++17)
|
变参数的逻辑与元函数 (类模板) |
(C++17)
|
变参数的逻辑或元函数 (类模板) |
(C++11)
(C++17) |
可指定类型的编译期常量 (类模板) |