2014-04-10 20:47 GMT+02:00 Chris Glover
On Wed, Feb 6, 2013 at 1:26 AM, Antony Polukhin
wrote: 2013/2/5 Diggory Hardy
: Dear list,
I wanted something like boost::optional, but with support for move- construction/assignment, so I went ahead and had a go at patching it.
It is a really good addition for boost::optional library, which I'd love to see. As I know, current maintainer of Boost.Optional has not much time, so may be someone will contact him and give a hand in maintaining optional (Diggory, if you are interested, I think you can give it a try and may be become a co-maintainer of optional, if Fernando Cacciola agrees)
Attached is based on boost 1.49 (Ubuntu package). Could someone please review? I've not contributed to boost before. The changes at least aren't too complicated, but: 1) I'm not entirely sure if the move constructor (line 636) and swap function (line 1046) are implemented in the best way (also see line 279), 2) and I have no idea how is_[not_]reference_tag (line 486) works. 3) There should maybe also be a unit test.
Of course, I am happy for my contributions to be published under the boost licence.
You may see this patch: https://svn.boost.org/trac/boost/ticket/1841 It proposes same features (and there is an old comment from library maintainer that he will take care of it) If you wish, you may update this patch (change deprecated #ifdef BOOST_HAS_RVALUE_REFS to #ifndef BOOST_NO_RVALUE_REFERENCES), add some unit tests, and may be maybe update it to use Boost.Move.
-- Best regards, Antony Polukhin
Hi,
This thread is more than a year old, but seems to have died. Does anyone know what the status of this is? I just ran into this today and it seems to me that with more move-only types out there, optional needs to support it. Is there anything I can do to help get it in?
Thanks,
-- chris
Hi Chris, I recently offered to help with maintaining Boost.Optional, and Fernando agreed to me being the co-maintainer. One of my goals is to add move constructor and assignment, but it looks like I also got swamped into private issues. I am currently stuck on learning Git and all the Modular Boost procedures. Regards, &rzej