|
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-09-05 14:20:41
Stephan Tolksdorf wrote:
> Hi
>
> why doesn't shared_array allow the same conversions as shared_ptr, so
> that
>
> boost::shared_ptr<int> ip;
> boost::shared_ptr<const int> ip2(ip);
>
> is allowed, but not
>
> boost::shared_array<int> ip;
> boost::shared_array<const int> ip2(ip);
shared_array doesn't support conversions since shared_array<Derived> should
not be convertible to shared_array<Base>, even though Derived* is
convertible to Base*. We might be able to add the limited cv-conversions
using enable_if tricks.
> Is it safe to use shared_ptr's with arrays if one supplies an array
> deleter as a constructor argument?
Yes, it is safe, but the above caveat still applies.
http://www.boost.org/libs/smart_ptr/sp_techniques.html#array
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk