https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70528
--- Comment #9 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Here's something strange.
gcc rejects and clang accepts the following test case, but if decltype (A()) is
replaced by decltype (T()) then gcc accepts and clang rejects it.
template <class T>
struct H
{
template <typename A = T, typename = decltype (A())>
H ();
};
template <class T>
struct I {
H<T> u;
};
struct J {
struct K {
int First = 0;
};
I<K> FunctionMDInfo;
};
The error is still
error: constructor required before non-static data member for ‘J::K::First’ has
been parsed