https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106201

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced to not use concepts:

struct foo
{
  template<typename T, typename = decltype(f(*(T*)nullptr))>
    foo(const T&) { }
};

struct bar { };

struct baz
{
  template<typename T> baz(const T&) { }
};

void f(foo&);
void f(baz, ...);

int main()
{
  bar b;
  f(b);
}

G++ goes into infinite recursion, Clang, EDG and MSVC accept it.

Reply via email to