Boost logo

Boost :

Subject: Re: [boost] Boost.Move Where we are with move semantic emulation on C++03 compilers?
From: David Abrahams (dave_at_[hidden])
Date: 2009-02-12 13:25:44


on Thu Feb 12 2009, Ion Gaztañaga <igaztanaga-AT-gmail.com> wrote:

> Daniel James wrote:
>> Does that mean you're not working on it anymore?
>
> No, I'm working on it. Right now writing some Quickbook documentation. But I have a
> question on perfect forwarding: has anybody implemented perfect forwarding using boost
> preprocessor?
>
> I mean something that generates a call with all the combinations of const and
> non-const references:
>
> function()
> function(const T0 &t0)
> function(T0 &t0)
> function(const T0 &t0, const T1 &t1)
> function(const T0 &t0, T1 &t1)
> function(T0 &t0, const T1 &t1)
> function(T0 &t0, T1 &t1)
> //....

Yeah, I did. And then Paul Mensonides optimized it for me, although I'm
not sure I know how to find that version. Maybe this is that version
and I forgot to credit him (if so, sorry, Paul!)

http://article.gmane.org/gmane.comp.lib.boost.devel/140159

That's not exactly perfect forwarding, though: it erases rvalue-ness.
That means you lose the ability to move from the argument inside the
forwarding function.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

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