Boost logo

Boost :

Subject: Re: [boost] [Boost.Move] A few notes
From: Dan Ivy (danivy.mail_at_[hidden])
Date: 2012-01-12 10:01:35


On Thu, Jan 12, 2012 at 2:50 PM, Thomas Klimpel
<Thomas.Klimpel_at_[hidden]> wrote:
> Dan Ivy wrote:
>> Ultimately, this is what I suggest:
>> First of all, have boost::move accept temporaries. Secondly, seriously
>> consider changing the definition of BOOST_FWD_REF(T) from const T& to
>> T&, as this would acheive two desirable, IMO, goals::
>> a. Forwarding functions would accept modifiable lvalues (and keep them
>> modifiable).
>> b. Forwarding functions would REJECT temporaries, UNLESS they're passed
>> through boost::move, which assures that they're treated as rvalues.
>
> Especially your point "a" reveals a different understanding of "boost::forward" and "BOOST_FWD_REF" than I gained during the review. My understanding was that the sole purpose of "boost::forward" and "BOOST_FWD_REF" is to enable "Constructor Forwarding" (see <http://www.boost.org/doc/libs/1_48_0/doc/html/move/construct_forwarding.html>). So the purpose of "boost::forward" is not to emulate "std::forward" for more general use cases.

I don't see it. How is "constructor forwarding" any different than
"more general forwarding" in that respect, or, in any other respect?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk