template <typename T> struct Base {}; template <typename T> struct Derived : Base<T>{ typedef Base<T> Base; }; int main() { Derived<int> d; }
Standard input is empty
prog.cpp:4:21: error: declaration of ‘typedef struct Base<T> Derived<T>::Base’ [-fpermissive]
typedef Base<T> Base;
^
prog.cpp:1:30: error: changes meaning of ‘Base’ from ‘struct Base<T>’ [-fpermissive]
template <typename T> struct Base {};
^
prog.cpp: In function ‘int main()’:
prog.cpp:8:18: warning: unused variable ‘d’ [-Wunused-variable]
Derived<int> d;
^
Standard output is empty