
On Thu, Oct 2, 2008 at 10:41 PM, vicente.botet <vicente.botet@wanadoo.fr> wrote:
This is normal as void* is not convertibel to X*. But in my program I can ensure that the pointeed object by ptr_void is a X pointer. So it would be safe to do a kind of static_cast on shared_ptr. At the end smart pointers should behave like pointers.
Can I achieve this already? I was thinking is something like something like
shared_ptr<X> ptrX2(boost::static_cast<shared_ptr<X> >(ptr_void));
Use boost::static_pointer_cast. You can also use the aliasing constructor to do tricks like make a shared_ptr point to a subobject of the pointee, for example you can make a shared_ptr<float> from a shared_ptr<std::pair<int,float> >. Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode