// Build don't link: template class A { public: operator const T*() const; const T* cast() const; }; template const T* A::cast() const { return operator const T*(); } template class A;