// Build don't link: #include template class Vec { public: Vec() { data = new T; } Vec split() { Vec tmp; operator=(tmp); return tmp; } void operator=(const Vec &v) { data = new T; } T *data; }; template class Vec >;