annotate gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile { target c++11 } }
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 struct C { // literal type
kono
parents:
diff changeset
4 int m;
kono
parents:
diff changeset
5 int n;
kono
parents:
diff changeset
6 constexpr C(int m) : m(m), n(-m) {}
kono
parents:
diff changeset
7 constexpr bool is_neg() const { return m < 0; }
kono
parents:
diff changeset
8 };
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 constexpr bool check1(const C& c, int C:: *pm) { return c.*pm < 0; } // #1
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 constexpr bool check2(const C* pc, bool (C::*pm)() const) { return
kono
parents:
diff changeset
13 (pc->*pm)(); } // #2
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 constexpr C c(-1);
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 static_assert(!check1(c, &C::n), "Error");
kono
parents:
diff changeset
18 static_assert(check1(c, &C::m), "Error");
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 static_assert(check2(&c, &C::is_neg), "Error");