
2013/4/27 Vicente J. Botet Escriba
Le 27/04/13 09:05, Antony Polukhin a écrit :
2013/4/27 Vicente J. Botet Escriba
: 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 http://www.boost.org/doc/libs/1_53_0/doc/html/move/emulation_limitations.htm... . There was a thread about that http://lists.boost.org/Archives/Ioost/2013/04/202436.php .
The link doesn't works.
http://lists.boost.org/Archives/boost/2013/04/202436.php
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 http://lists.boost.org/Archives/boost/2013/04/202443.php)
* [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