From: Gary Powell (Gary.Powell_at_[hidden])
Date: 2001-04-05 14:52:09
> This covers the (void*) casts, the only cast left is in
> template<typename Y>
> auto_ptr(auto_ptr<Y>& rhs) throw()
> : inherited((void *)((element_type *) rhs.release() ) )
> Isn't the (element_type*) cast dangerous?
Yes, and it isn't necessary for MSVC or gcc 2.95.2. (I'll cite bug for now)
So I've removed it in my copy.
(will repost to the vault shortly.)
> I don't see a corresponding templated constructor in auto_array_ptr (this
> probably correct) but there is a templated assignment operator? Is this by
Ah, I suspect that the templated assignment operator should go. Because
while a Base * can point to a Derived *, the offsets for operator are
going to be wrong for a Base  vs a Derived .
> > Ok, I now understand the issue with exception safety. So let me just
> > understand the suggested solution. remove auto_ptr_ref?
> Hmm, better leave it as is, if the purpose of boost::auto_ptr is to
> an implementation of the standard auto_ptr where the compiler doesn't have
I'd be glad to have a "new and improved" auto_ptr but we should give it a
new name. Meantime I'm just trying for a auto_array_ptr. And since that
doesn't exist in std, I'm open to any and all "improvements"
In that light, are you suggesting that auto_array_ptr not use auto_ptr_ref?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk