Subject: Re: [boost] [utility] rvalue support in value_initialized
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2011-09-15 03:59:38
[reordering; please see http://www.boost.org/community/policy.html#quoting]
2011/9/15 "Claas H. Köhler" <claas.koehler_at_[hidden]>
> On 09/14/2011 06:06 PM, Dave Abrahams wrote:
>> on Wed Sep 14 2011, "Claas H. Köhler"<claas.koehler-AT-dlr.**de<http://claas.koehler-AT-dlr.de>>
>> Hi everybody!
>>> Recently I encountered a problem using the std:::unique_ptr within
>>> boost::spirit. The reason is apparently that value_initialized does
>>> not support rvalue assignment. Are there any plans to implement move
>>> semantics into value_initialized? Mainly I would be interested in
>>> making something like this work:
>>> std::unique_ptr<T> a= boost::get( boost::value_initialized<
>>> std::unique_ptr<T> >() );
>>> Currently this fails due to the fact, that unique_ptr can be moved but
>>> not copied.
>> No plans as far as I know, but I'm sure a patch would be welcome.
>> Principially I would like to contribute. I have to admit though, that I
> have never contributed to boost before.
> In my oppinion it should suffice to add move constructors/ move assignment
> to /utility/value_init.hpp, which I could do.
> How do we go on from there? Shall I submit the modified header file to this
> mailing list for review or what is the usual procedure?
I'm guessing it would probably be sufficient to submit a patch to an open
trac ticket (filed as a feature request). Documentation patches would
probably also be in order.
I think a big win would be to use Ion G's Boost.Move library to implement
the move constructor and move assignment operator. I *believe* this is
slated to be included with 1.48, but that's entirely up to Ion on whether
it's ready yet.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk