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.