move コンストラクターの仕様とMessage コンストラクターのソースを確認しましたが、見つかりませんでした。
ない場合、追加する計画について知っている人はいますか?
私はproto3
構文を使用し、ライブラリを作成し、値を介したリターンとunique_ptrの間を検討しています。
move コンストラクターの仕様とMessage コンストラクターのソースを確認しましたが、見つかりませんでした。
ない場合、追加する計画について知っている人はいますか?
私はproto3
構文を使用し、ライブラリを作成し、値を介したリターンとunique_ptrの間を検討しています。
代入演算子を使用しようとすると、RVO は余分なコピーを防ぐために最適化を行います。
// RVO will bring the return value to a without using copy constructor.
SomeMessage a = SomeFooWithMessageReturned();
std::move
左辺値をリスト/サブメッセージなどに移動するために使用する場合は、ConcreteMessage::Swap
メソッドを使用してみてください。交換したアイテムは役に立たなくなります。
// Non-copy usage.
somemessage.add_somerepeated_message()->Swap(&a);
somemessage.mutable_somesinglar_message()->Swap(&a);
// With message copying
somemessage.add_somerepeated_message()->CopyFrom(a);
*somemessage.mutable_somesinglar_message() = a;