// { dg-do compile { target c++17 } } #if __cplusplus <= 202302L # include #else # include #endif void test01() { static_assert( std::is_nothrow_default_constructible_v ); static_assert( std::is_nothrow_copy_constructible_v ); static_assert( std::is_nothrow_copy_assignable_v ); static_assert( std::is_nothrow_destructible_v ); } void test02() { #ifdef __cpp_lib_three_way_comparison static_assert( std::is_eq(std::monostate{} <=> std::monostate{}) ); #endif static_assert( std::monostate{} == std::monostate{} ); static_assert( std::monostate{} <= std::monostate{} ); static_assert( std::monostate{} >= std::monostate{} ); static_assert( !(std::monostate{} != std::monostate{}) ); static_assert( !(std::monostate{} < std::monostate{}) ); static_assert( !(std::monostate{} > std::monostate{}) ); } void test03() { std::monostate m; std::hash h; static_assert( std::is_same_v ); }