Boost logo

Boost :

Subject: Re: [boost] [operators] The future of Boost.Operators
From: Andrew Ho (helloworld922_at_[hidden])
Date: 2013-04-24 02:06:08


Here's a thought about the direct use of r-value references vs. pass by value
argument:

We are planning on providing a version which is supposed to support compilers
without move semantics. However, these implementations are close to, perhaps
even exactly identical to the code that would take advantage of move semantics
via pass by value.

Say we allowed a user-accessible define which would allow the programmer to
decide?

something like:

// BOOST_HAS_RVALUE_REFS is a feature availability check
// BOOST_UNSAFE_MOVE is user-definable override to use faster, unsafe version
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_UNSAFE_MOVE)
// use 4 overload version
#else
// use pass-by-value version
#endif

If the user is more concerned with safety over micro-optimizations, the
default behavior would resort to pass by value (good for backwards
compatibility).

However, the user would have the option available to easily use the faster
version if they deem it necessary.


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