// // 2.26.bool.metafunctions.cpp // chapter 2 language usability // modern cpp tutorial // // created by changkun at changkun.de // https://github.com/changkun/modern-cpp-tutorial // #include #include // C++17 logical metafunctions compose other type traits. template constexpr bool is_signed_integral = std::conjunction_v, std::is_signed>; int main() { static_assert(is_signed_integral); static_assert(!is_signed_integral); static_assert(std::disjunction_v, std::is_floating_point>); static_assert(std::negation_v>); std::cout << "all logical metafunction assertions passed" << std::endl; }