summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/class/class.compare/class.eq/p3.cpp
blob: 04db022fe73021741b44f9305de4a9e70293a3e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// RUN: %clang_cc1 -std=c++2a -verify %s

struct A {
  int a, b[3], c;
  bool operator==(const A&) const = default;
};

static_assert(A{1, 2, 3, 4, 5} == A{1, 2, 3, 4, 5});
static_assert(A{1, 2, 3, 4, 5} == A{0, 2, 3, 4, 5}); // expected-error {{failed}}
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}}
OpenPOWER on IntegriCloud