Community
Participate
Working Groups
Code: template <typename T> class Test { public: class Inner; }; template <typename T> class Test<T>::Inner { void foo(int a); }; void xx() { Test<int>::Inner i; } After implemeting foo it has following prototype: template<typename T> inline void Test<T>::Inner<T>::foo(int a) { } But the correct one is: template<typename T> inline void Test<T>::Inner::foo(int a) { }