When compiling this code I get an unresolved external symbol "public: static class Outer<int>::Inner Outer<int>::inner" with VC6 and "undefined reference to `Outer<int>::inner' " with g++. Perhaps Im missing something obvious but I cant figure it out. Any ideas?
Code:template <class T> class Outer { class Inner { public: void f() {} }; public: static Inner inner; }; int main() { Outer<int>::inner.f(); return 0; }