I think you have your abstractions wrong.
shared_ptr "" , . shared_ptr , , .
, , , , shared_ptr , . ( , HANDLE , HANDLE, , , .)
class CWrapper
{
public:
CWrapper()
{
}
~CWrapper()
{
}
private:
CWrapper(const CWrapper&);
CWrapper& operator=(const CWrapper&);
HANDLE mHandle;
};
shared_ptr<CWrapper>, , typedef, , .
- , .