diff options
author | Richard Smith <richard@metafoo.co.uk> | 2019-12-10 19:50:26 -0800 |
---|---|---|
committer | Richard Smith <richard@metafoo.co.uk> | 2019-12-10 19:54:35 -0800 |
commit | ffe612922cb5aa2767c79d47a1b162811a08583f (patch) | |
tree | 6bb9a155e5dc06a24077030144c19aa624231854 /clang/test/CXX/class/class.compare/class.eq/p3.cpp | |
parent | 8e0c9e21bf5f3e7a427b07e3eaf3bc80d2c74cb6 (diff) | |
download | bcm5719-llvm-ffe612922cb5aa2767c79d47a1b162811a08583f.tar.gz bcm5719-llvm-ffe612922cb5aa2767c79d47a1b162811a08583f.zip |
[c++20] Implement P1946R0: allow defaulted comparisons to take their
arguments by value.
Diffstat (limited to 'clang/test/CXX/class/class.compare/class.eq/p3.cpp')
-rw-r--r-- | clang/test/CXX/class/class.compare/class.eq/p3.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/CXX/class/class.compare/class.eq/p3.cpp b/clang/test/CXX/class/class.compare/class.eq/p3.cpp index a7356b5381c..04db022fe73 100644 --- a/clang/test/CXX/class/class.compare/class.eq/p3.cpp +++ b/clang/test/CXX/class/class.compare/class.eq/p3.cpp @@ -11,3 +11,15 @@ static_assert(A{1, 2, 3, 4, 5} == A{1, 0, 3, 4, 5}); // expected-error {{failed} static_assert(A{1, 2, 3, 4, 5} == A{1, 2, 0, 4, 5}); // expected-error {{failed}} static_assert(A{1, 2, 3, 4, 5} == A{1, 2, 3, 0, 5}); // expected-error {{failed}} static_assert(A{1, 2, 3, 4, 5} == A{1, 2, 3, 4, 0}); // expected-error {{failed}} + +struct B { + int a, b[3], c; + friend bool operator==(B, B) = default; +}; + +static_assert(B{1, 2, 3, 4, 5} == B{1, 2, 3, 4, 5}); +static_assert(B{1, 2, 3, 4, 5} == B{0, 2, 3, 4, 5}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} == B{1, 0, 3, 4, 5}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} == B{1, 2, 0, 4, 5}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} == B{1, 2, 3, 0, 5}); // expected-error {{failed}} +static_assert(B{1, 2, 3, 4, 5} == B{1, 2, 3, 4, 0}); // expected-error {{failed}} |