template<class AType> class TOnlyPointerTo : public TPointerTo<AType> { public: TOnlyPointerTo(AType* adopt = NIL); TOnlyPointerTo(TOnlyPointerTo<AType>& transfer); ~TOnlyPointerTo(); TOnlyPointerTo&operator=(AType* adopt); TOnlyPointerTo&operator=(TOnlyPointerTo& transfer); AType*Orphan(); Boolean operator== (const TOnlyPointerTo<AType>&); Boolean operator!= (const TOnlyPointerTo<AType>&); Boolean operator== (const AType*) const; Boolean operator!= (const AType*) const; }; template<class AType> Boolean operator== (const AType* l, const TOnlyPointerTo<AType>& r); template<class AType> Boolean operator!= (const AType* l, const TOnlyPointerTo<AType>& r); template<class AType> void Resurrect (TOnlyPointerTo<AType>& p, TStream& from) {auto AType* raw; Resurrect (raw, from); p = raw;} template<class AType> void Resurrect (TOnlyPointerTo<AType>& p, TStream& from, TMemoryHeap& heap) {auto AType* raw; Resurrect (raw, from, heap); p = raw;} template<class AType> void Resurrect (TOnlyPointerTo<AType>& p, TStream& from, EHeapType t, const void* o) {auto AType* raw; Resurrect (raw, from, t, o); p = raw;}