1 // { dg-do compile } 2 // Origin: Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de> 3 4 // PR c++/7348 5 // Access control for typename in function return type 6 7 class Outer { 8 template <int dim> struct Inner { 9 typedef int T; 10 T foo (); 11 }; 12 public: 13 Outer(); 14 }; 15 16 template <int dim> foo()17typename Outer::Inner<dim>::T Outer::Inner<dim>::foo () { 18 return 1; 19 } 20 21 template struct Outer::Inner<2>; 22