| // { dg-do compile } | |
| // Origin: Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de> | |
| // PR c++/7348 | |
| // Access control for typename in function return type | |
| class Outer { | |
| template <int dim> struct Inner { | |
| typedef int T; | |
| T foo (); | |
| }; | |
| public: | |
| Outer(); | |
| }; | |
| template <int dim> | |
| typename Outer::Inner<dim>::T Outer::Inner<dim>::foo () { | |
| return 1; | |
| } | |
| template struct Outer::Inner<2>; |