'function' : member functions of nested classes of a template class cannot be defined outside the class
For inner nested classes inside a template, you must define functions inside the class. Such functions automatically become inline functions.
This error is generated for code allowed by the C++ language, however, not yet supported by Visual C++.
For example, the following sample generates C3206:
template<typename T> class Sequence { public: class Cursor { public: Cursor(Sequence*); // to fix, use the following line instead of the preceding line // Cursor(Sequence*){} }; }; template<typename T> Sequence<T>::Cursor::Cursor(Sequence<T>*) { } // error, remove previous line void main() { Sequence<int>::Cursor c(0); }