http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54311
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-04-19 CC| |manu at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #1 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2013-04-19 16:21:54 UTC --- That would be an improvement yes. This is what Clang++ gives: test.cc:6:39: error: no type named 'type' in 'A<int>' typename U = typename A<T>::type> ~~~~~~~~~~~~~~~^~~~ test.cc:11:3: note: in instantiation of default argument for 'B<int>' required here B<int> b; ^~~~~~ which seems to me even better than what you propose.