FreeBSD Manual Pages
std::negation(3) C++ Standard Libary std::negation(3) NAME std::negation - std::negation Synopsis Defined in header <type_traits> template<class B> (since C++17) struct negation; Forms the logical negation of the type trait B. The type std::negation<B> is a UnaryTypeTrait with a base character- istic of std::bool_constant<!bool(B::value)>. The behavior of a program that adds specializations for negation or negation_v is undefined. Template parameters B - any type such that the expression bool(B::value) is a valid con- stant expression Helper variable template template<class B> (since C++17) inline constexpr bool negation_v = negation<B>::value; Inherited from std::integral_constant Member constants value true if B has a member ::value that is false when explic- itly converted to [static] bool , false otherwise (public static member constant) Member functions operator bool converts the object to bool, returns value (public member function) operator() returns value (C++14) (public member function) Member types Type Definition value_type bool type std::integral_constant<bool, value> Possible implementation template<class B> struct negation : std::bool_constant<!bool(B::value)> { }; Notes Feature-test macro: __cpp_lib_logical_traits Example // Run this code #include <iostream> #include <type_traits> static_assert( std::is_same< std::bool_constant<false>, typename std::negation<std::bool_con- stant<true>>::type>::value, ""); static_assert( std::is_same< std::bool_constant<true>, typename std::negation<std::bool_con- stant<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'; } Output: false true See also conjunction variadic logical AND metafunction (C++17) (class template) disjunction variadic logical OR metafunction (C++17) (class template) integral_constant bool_constant compile-time constant of specified type with spec- ified value (C++11) (class template) (C++17) http://cppreference.com 2022.07.31 std::negation(3)
NAME | Synopsis | Template parameters | Member constants | Member functions | Member types | Possible implementation | Notes | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::negation&sektion=3&manpath=FreeBSD+Ports+15.0>
