Ian Lance Taylor wrote: > ================================================== > template <int dim> struct X { > struct I { I(); void foo(); }; > }; > > template <int dim> struct Y : X<dim> { > typedef typename X<dim>::I I; > }; > > template <int dim> > void Y<dim>::I::foo () {} > > template struct Y<1>; > ==================================================
This should be invalid too, assuming I'm remembering correctly. I think you have to say X<dim>::I::foo() when you make the definition. -- Mark Mitchell CodeSourcery, LLC [EMAIL PROTECTED] (916) 791-8304