#include "src/type_traits" int main () { using namespace cruft::cxx; // Type comparisons static_assert (is_same_v); static_assert (!is_same_v); static_assert (!is_same_v); static_assert (!is_same_v); // CV removal static_assert (is_same_v::type, remove_const_t>); static_assert ( is_same_v< int, typename remove_const::type > ); static_assert (is_same_v>); static_assert (is_same_v, int>); // Integral tests static_assert (is_integral_v); static_assert (is_integral_v); static_assert (is_integral_v); static_assert (is_integral_v); // Floating point tests static_assert (is_floating_point_v); static_assert (is_floating_point_v); static_assert (is_floating_point_v); static_assert (!is_floating_point_v); static_assert (!is_floating_point_v); // Arithmetic tests static_assert (is_arithmetic_v); static_assert (is_arithmetic_v); static_assert (!is_arithmetic_v); // Signedness static_assert (is_signed_v); static_assert (!is_signed_v); static_assert (is_signed_v); static_assert (!is_signed_v); static_assert (is_unsigned_v); static_assert (!is_unsigned_v); static_assert (!is_unsigned_v); static_assert (!is_unsigned_v); }