view gcc/testsuite/g++.dg/cpp0x/ref-qual13.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// PR c++/57388
// { dg-require-effective-target c++11 }

template<class> struct A
{
  static constexpr bool value = false;
};

template<class Res, class... Args>
struct A<Res(Args...)>
{
  static constexpr bool value = true;
};

template<class Res, class... Args>
struct A<Res(Args...) const &>
{
  static constexpr bool value = true;
};

template<class Res, class... Args>
struct A<Res(Args...) const &&>
{
  static constexpr bool value = true;
};

static_assert(A<void()>::value, "Ouch");
static_assert(A<void() const &>::value, ""); // #1
static_assert(A<void() const &&>::value, ""); // #2