|
Boost : |
Subject: Re: [boost] [move] Library uploaded to sandbox
From: Rani Sharoni (rani_sharoni_at_[hidden])
Date: 2009-02-22 11:11:26
> Wow, this is way cool: you've found a way to allow the default
> copy ctor and assignment operators to be in place, and yet still treat
> rvalues specially! I guess that's because overloading prefers derived
> classes:
No. this is because of return value optimization in which the temporary is
constructed directly into destination and therefore the copy ctor is not
called (hence its definition is not instantiated in your case). This is
common frontend optimization but it might be fragile assumption.
Try removing the "move-enabling" members or put the copy ctor as private to
see.
The "move-enabling" members are only effective for the explicit move (via
move(lvalue)) so they are essential after all.
Rani
BTW - sorry for the bad formatting in the previous post. I pasted it from
the hotmail "subscription required" reply.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk