diff options
author | Richard Smith <richard@metafoo.co.uk> | 2019-12-05 18:51:19 -0800 |
---|---|---|
committer | Richard Smith <richard@metafoo.co.uk> | 2019-12-09 14:54:06 -0800 |
commit | e6e6e34b95cfe03275943fde0db259cc7d57f4ad (patch) | |
tree | e646ed63dcfd9eaa1cd158b0e9220dbb6da9cac0 /clang/test/CXX/class/class.compare/class.spaceship/p3.cpp | |
parent | 295db41ce230d9b0f1e0d24829abf0fb772b31ff (diff) | |
download | bcm5719-llvm-e6e6e34b95cfe03275943fde0db259cc7d57f4ad.tar.gz bcm5719-llvm-e6e6e34b95cfe03275943fde0db259cc7d57f4ad.zip |
[c++20] Defaulted comparison support for array members.
Diffstat (limited to 'clang/test/CXX/class/class.compare/class.spaceship/p3.cpp')
-rw-r--r-- | clang/test/CXX/class/class.compare/class.spaceship/p3.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp b/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp index e4be892cd7c..79fce259e4f 100644 --- a/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp +++ b/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp @@ -10,14 +10,16 @@ namespace std { } struct A { - int a, b, c; + int a, b[3], c; std::strong_ordering operator<=>(const A&) const = default; }; -static_assert(A{1, 2, 3} <= A{1, 2, 3}); -static_assert(A{1, 2, 3} <= A{0, 20, 3}); // expected-error {{failed}} -static_assert(A{1, 2, 3} <= A{1, 0, 30}); // expected-error {{failed}} -static_assert(A{1, 2, 3} <= A{1, 2, 0}); // expected-error {{failed}} +static_assert(A{1, 2, 3, 4, 5} <= A{1, 2, 3, 4, 5}); +static_assert(A{1, 2, 3, 4, 5} <= A{0, 20, 3, 4, 5}); // expected-error {{failed}} +static_assert(A{1, 2, 3, 4, 5} <= A{1, 0, 30, 4, 5}); // expected-error {{failed}} +static_assert(A{1, 2, 3, 4, 5} <= A{1, 2, 0, 40, 5}); // expected-error {{failed}} +static_assert(A{1, 2, 3, 4, 5} <= A{1, 2, 3, 0, 50}); // expected-error {{failed}} +static_assert(A{1, 2, 3, 4, 5} <= A{1, 2, 3, 4, 0}); // expected-error {{failed}} struct reverse_compare { int n; @@ -26,10 +28,12 @@ struct reverse_compare { }; struct B { - int a, b, c; + int a, b[3], c; friend reverse_compare operator<=>(const B&, const B&) = default; }; -static_assert(B{1, 2, 3} >= B{1, 2, 3}); -static_assert(B{1, 2, 3} >= B{0, 20, 3}); // expected-error {{failed}} -static_assert(B{1, 2, 3} >= B{1, 0, 30}); // expected-error {{failed}} -static_assert(B{1, 2, 3} >= B{1, 2, 0}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} >= B{1, 2, 3, 4, 5}); +static_assert(B{1, 2, 3, 4, 5} >= B{0, 20, 3, 4, 5}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} >= B{1, 0, 30, 4, 5}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} >= B{1, 2, 0, 40, 5}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} >= B{1, 2, 3, 0, 50}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} >= B{1, 2, 3, 4, 0}); // expected-error {{failed}} |