Smart Pointer Member Functions
- Smart Pointer Member Functions: error prone due to syntactical and literary
similarity with those of the PointerType
SmartPtr<Printer> spPrn = ...
spPrn->Release(); // release the printer (printer method)
spPrn.Release(); // release the pointer to the printer (smart pointer method)
- Loki policy - no smart pointer named member functions; use namespace-level functions:
T* GetImpl (SmartPtr<T>& sp); // return the pointer object stored by sp
T*& GetImplRef (SmartPtr<T>& sp); // return a reference to the pointer object
void Reset (SmartPtr<T>& sp, T* source); // resets the underlying pointer value
void Release (SmartPtr<T>& sp, T*& destination); // releases ownership