namespace NonTemplate{ struct Unknown; struct AnyStruct{ Unknown *p; AnyStruct(Unknown* p): p(p){} void doStuff(){ p->doStuff(); } // <-- error: use of undefined type 'NonTemplate::Unknown' }; struct Unknown{ void doStuff(){} }; }
namespace Template { template<typename T> struct Unknown; template<typename T> struct AnyStruct { Unknown<T> *p; AnyStruct(Unknown<T>* p) : p(p) {} void doStuff() { p->doStuff(); } // <-- OK }; template<typename T> struct Unknown { void doStuff() {} }; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)