https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92787
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I'm not completely sure; I thought the "in a default argument" thing was supposed to prevent us from adding implicit typename for T::X here: template <typename T> void f(typename T::type x = [](T::type x = T::X){return x;}(typename T::type{})) { }