http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48934
--- Comment #6 from froydnj at codesourcery dot com <froydnj at codesourcery dot com> 2011-05-09 16:10:51 UTC --- On Mon, May 09, 2011 at 02:08:05PM +0000, redi at gcc dot gnu.org wrote: > template<typename T> struct S1 { typedef char type; }; > > template<typename T> > typename S1<T>::type > foo(typename S1<T>::typo) > { return t; } > > char c = foo<int>(1); Running this example given an error about `t' not being declared. What did you mean to return there? Or is that part of the point?