aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual1.C
blob: fcf8cac64170792cc2fb1397f5520d8776d4d1f2 (plain)
1
2
3
4
5
6
7
8
// P1064R0
// { dg-do compile { target c++11 } }
// { dg-options "-pedantic-errors" }

struct X
{
  constexpr virtual int f() { return 0; } // { dg-error "member .f. can be declared both .virtual. and .constexpr. only" "" { target c++17_down } }
};
n> X&) const noexcept(B) = default; bool operator==(const X&) const noexcept(!B) = default; }; X<true> x_t; static_assert(noexcept(x_t <=> x_t)); static_assert(noexcept(x_t < x_t)); static_assert(!noexcept(x_t == x_t)); static_assert(!noexcept(x_t != x_t)); X<false> x_f; static_assert(!noexcept(x_f <=> x_f)); static_assert(!noexcept(x_f < x_f)); static_assert(noexcept(x_f == x_f)); static_assert(noexcept(x_f != x_f));