Boost logo

Boost :

Subject: Re: [boost] [GSoC 2013] Moving to Boost to Boost.Move
From: Antony Polukhin (antoshkka_at_[hidden])
Date: 2013-04-30 04:00:40

2013/4/27 Vicente J. Botet Escriba <vicente.botet_at_[hidden]>:
> Le 27/04/13 09:05, Antony Polukhin a écrit :
>> 2013/4/27 Vicente J. Botet Escriba <vicente.botet_at_[hidden]>:
>>> Hi,
>>> In case there are some students that are looking for a last idea.
>>> There a re a lot of Boost libraries that don't support move semantics.
>>> It would be nice if one student propose to adapt the some of the existing
>>> libraries.
>>> The idea is to use Boost.Move so that an emulation is provided for
>>> compilers
>>> not supporting rvalue references.
>> <...>
>>> Accepted for C++14
>>> * [5] optional
>> As I know author of the library is now working on that.
>>> * [1] Function
>> Added move assignment and move constructor for C++11 compilers a few
>> releases ago.
>>> * [6] Any
>> Added rvalues support to trunk version for C++11 compilers
>>> * [7] Variant
>> Rvalues work since last release for C++11 compilers
> Glad to see that Boost libraries are moving to C++11 move semantics.
> I was locking on the documentation of some of these libraries and I didn't
> found too much. Is this documented?
> Maybe we can at least add the C++11 move semantic on the libraries that are
> not providing it now. This will be better than nothing.

Committed documentation and C++11 rvalues support for Boost.Any to
release branch. Now working on documentation of Boost.Variant.

>> Boost.Move is not always suitable for old libraries, it may break
>> users code
>> . There was a thread about that
>> .
> The link doesn't works.

>> It would be great to provide rvalue references for old Boost libraries
>> just for C++11 compatible compilers, without Boost.Move usage.
> I can understand that having C++11 move semantics could be enough for you (I
> will be in your place ;-) but others could not move to them. What are the
> benefit of Boost.Move into Boost if we don't make use of it, at least on all
> the Boost libraries having an equivalent on C++11?

Tried that on Boost.Any. Was required to rollback commits because some
libraries dependent on Boost.Any stoped compiling :-( (Stevens comment
on that topic

> * [2] SmartPtr

Uses perfect forwarding on C++11 compilers, has BOOST_NOEXCEPT mark on
noexcept functions

> * [0] Bind

This may be a very good place to use Boost.Move.
I would also love to see Boost.Bind using variadic templates.

Best regards,
Antony Polukhin

Boost list run by bdawes at, gregod at, cpdaniel at, john at