[xsd-users] C++ 11 move semantics
    Boris Kolpackov 
    boris at codesynthesis.com
       
    Thu Jun 27 08:06:38 EDT 2013
    
    
  
Hi Ovanes,
Please don't post multiple copies of the same. If you sent it from an
unsubscribed address, just wait for it to go through moderation.
Ovanes Markarian <om_codesynthesis at keywallet.com> writes:
> The base parser skeleton has the following construct:
> 
>                 std::unique_ptr<what_ever_type> tmp
> (this->Underlying_parser_->post_WhatEverType());
>                 this->WhatEverType (tmp);
> 
> Here I need to either use an explicit move: std::move(tmp) or pass the
> r-value to the WhatEverType function:
> 
>                 std::unique_ptr<what_ever_type> tmp
> (this->Underlying_parser_->post_WhatEverType());
>                 this->WhatEverType (std::move(tmp));
> 
> or
> 
> this->WhatEverType(this->Underlying_parser_->post_WhatEverType())
> 
> 
> Is there any work around for that?
A few that I see:
  1. Accept the pointer in WhatEverType() as an l-value reference. Inside
     you can call std::move() yourself.
  2. Use shared_ptr.
> Can I specify in a type-map file a move function to be used.
No, this is not currently supported.
Boris
    
    
More information about the xsd-users
mailing list