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

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced:

template <typename T>
struct A 
{
  A () : A<int> ( 1 ) { }
  A (int);
};

A<int> a;

G++ and MSVC accept the delegating constructor, Clang and EDG reject it.

It's not immediately obvious to me that this is invalid, because the
base-specifier does name the class, making it a valid delegating constructor.
It would be invalid in any other specialization of the class template, but
that's OK. As long as there is one valid specialization it should be accepted.

Reply via email to