$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Leon Mlakar (leon.mlakar_at_[hidden])
Date: 2007-05-17 10:59:11
> Now I am trying to be a good programmer and keep track of my pointers.
> So I decided that I should replace the pointer with a shared_ptr.
>
> In regards to the validity of calling get() on an unassigned
> shared_ptr I thought that if a shared_ptr was declared in the
> header and no call is given to any constructor that the
> default constructor would be used.
> Therefore the shared_ptr would have a value of 0x0.
It would, and you shouldn't get the message. Perhaps the message comes from
the copy assignment (which again, it shouldn't) - try
m_instance.reset(new Trace_State());
instead.
You could also simply write if (!m_instance) as shared_ptr declares operator
! just for this purpose.
But I agree, in a singleton pattern you benefit from shared pointer only if
the singleton lives shorter than the application and you want to make sure
it's not gone while still in use.
Leon