(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp0x/
constexpr-52830.C
// PR c++/52830
// { dg-do compile { target c++11 } }
// { dg-additional-options "-fchecking" }

template<bool b> struct eif { typedef void type; };
template<>       struct eif<false> {};

template<class A, class B> struct same
{
  static constexpr bool value = false;
};
template<class A>
struct same<A, A>
{
  static constexpr bool value = true;
};


struct foo {
  template<class T>
  void func(T && a,
            typename eif<same<decltype(a), int&&>::value>::type * = 0);
};

template<class T>
void
foo::
func(T && a,
     typename eif<same<decltype(a), int&&>::value>::type * )
{
}

void do_stuff()
{
  foo f;
  f.func(12);
}