
5 Sep
2006
5 Sep
'06
6:20 p.m.
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