#ifndef BU_C_PTR_H #define BU_C_PTR_H namespace Bu { template class Cache; template class CPtr { friend class Bu::Cache; private: CPtr( Cache &rCache, obtype *pData ) : rCache( rCache ), pData( pData ) { rCache.incRef( pData ); } public: virtual ~CPtr() { rCache.decRef( pData ); } private: Bu::Cache &rCache; obtype *pData; }; }; #endif