// $Id$ #ifndef _LameShadowPtr_imp_h_ #define _LameShadowPtr_imp_h_ #include #include #define LAMESHADOWPTR_INST(_T_...) \ template class utl::LameShadowPtr<_T_ > namespace utl { template T& LameShadowPtr::operator*() { DereferenceCheck::Examine(fPtr); return *fPtr; } template const T& LameShadowPtr::operator*() const { DereferenceCheck::Examine(fPtr); return *fPtr; } template void LameShadowPtr::Delete() { delete fPtr; } template void LameShadowPtr::DeepCopy(const T* const ptr) { fPtr = (ptr ? Meta::GetCopy(*ptr) : 0); } } #endif //_LameShadowPtr_imp_h_