mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-21 01:55:15 +08:00
libstdc++: Adjust tests that give different results in C++20
libstdc++-v3/ChangeLog: * testsuite/20_util/is_aggregate/value.cc: Adjust for changes to definition of aggregates in C++20. * testsuite/20_util/optional/requirements.cc: Adjust for defaulted comparisons in C++20.
This commit is contained in:
parent
95edead9aa
commit
8e2592a888
@ -45,8 +45,6 @@ void test01()
|
||||
UnionType>(true), "");
|
||||
static_assert(test_category<is_aggregate,
|
||||
SLType>(true), "");
|
||||
static_assert(test_category<is_aggregate,
|
||||
NoexceptMoveAssignClass>(true), "");
|
||||
static_assert(test_category<is_aggregate,
|
||||
unsigned[3]>(true), "");
|
||||
static_assert(test_category<is_aggregate,
|
||||
@ -63,8 +61,13 @@ void test01()
|
||||
EnumType[]>(true), "");
|
||||
static_assert(test_category<is_aggregate,
|
||||
EnumType[][2]>(true), "");
|
||||
pos<ClassType, UnionType, SLType, NoexceptMoveAssignClass,
|
||||
pos<ClassType, UnionType, SLType,
|
||||
unsigned[3], unsigned[3][2], unsigned[], unsigned[][3]>();
|
||||
#if __cplusplus == 201703L
|
||||
static_assert(test_category<is_aggregate,
|
||||
NoexceptMoveAssignClass>(true), "");
|
||||
pos<NoexceptMoveAssignClass>();
|
||||
#endif
|
||||
|
||||
// Negative tests.
|
||||
static_assert(test_category<is_aggregate,
|
||||
@ -93,4 +96,10 @@ void test01()
|
||||
void>(false), "");
|
||||
neg<AbstractClass, PolymorphicClass, ExplicitClass, char, unsigned,
|
||||
bool, float, double, void>();
|
||||
#if __cplusplus > 201703L
|
||||
// In C++20 aggregates cannot have user-declared constructors.
|
||||
static_assert(test_category<is_aggregate,
|
||||
NoexceptMoveAssignClass>(false), "");
|
||||
neg<NoexceptMoveAssignClass>();
|
||||
#endif
|
||||
}
|
||||
|
@ -312,7 +312,10 @@ struct JustEq {};
|
||||
bool operator==(const JustEq&, const JustEq&);
|
||||
|
||||
static_assert(is_eq_comparable<optional<JustEq>>::value, "");
|
||||
#if __cplusplus == 201703L
|
||||
// In C++20 operator!= can be synthesized from operator==
|
||||
static_assert(!is_neq_comparable<optional<JustEq>>::value, "");
|
||||
#endif
|
||||
static_assert(!is_lt_comparable<optional<JustEq>>::value, "");
|
||||
static_assert(!is_gt_comparable<optional<JustEq>>::value, "");
|
||||
static_assert(!is_le_comparable<optional<JustEq>>::value, "");
|
||||
|
Loading…
Reference in New Issue
Block a user