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