"Peter Dimov" <[EMAIL PROTECTED]> wrote in message
001901c2c6ea$e2576360$1d00a8c0@pdimov2">news:001901c2c6ea$e2576360$1d00a8c0@pdimov2...
> [...]
> You can use this argument for any feature. But you can't include all
> features.

Watch me try. Did you want that sink in any particular color? ;)

> > At the very least, it seems like a glaring omission to create a smart
> > pointer framework that can't even emulate auto_ptr<>.
>
> It depends on what your design goals are. If you want to create the
> One True Smart Pointer Design, then yes, auto_ptr<> emulation is a
> must.

I think this is a good goal. ;>

> If, on the other hand, you want to create the Design That Solves
> Common User Needs, auto_ptr<> emulation isn't high on the list.
> If I need auto_ptr I know where to find it, and nobody I know has
> ever written an auto_ptr (amusement aside.) :-)

The point is, auto_ptr<> has fixed semantics.  We don't want to
touch the base semantics, which involve move, of course.  We simply
want to allow the user to do a few extra things with auto_ptr<> that
she cannot do with std::auto_ptr<> without having to roll her own
version, no matter how much fun that might be. ;)

> > Beyond that, it seems that there are resources that would
> > benefit from or outright require move semantics to work properly,
> > and why wouldn't you want to let SmartPtr<> manage those?
>
> Interesting question. Do you have an example?

You would call me on that, wouldn't you?  Ok, I can't think of a
resource that would *require* move semantics (which is why I didn't
mention one in the first place, but I hoped maybe someone more
imaginative than I would pipe up with an example ;).  However, it still
seems that move semantics would be useful in a std::vector<>.  You
might know that the vector holds the only pointers to the resources,
and resizing the vector does not incur the overhead of modifying a
bunch of counts.

> Also note that I said "in current C++" (that's rather move semantics
> unfriendly.) Given language support for move (N1377 for example),
> it would make perfect sense to extend SmartPtr with move semantics,
> of course.

I agree that native move facilities would be nice.  But auto_ptr<> like
move semantics have established a large historical precedent, and
people find it useful enough until we get real move support, that I
think it ought to be supported.

Dave



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to