回答編集履歴
1
quote
answer
CHANGED
@@ -4,7 +4,15 @@
|
|
4
4
|
- [本当は怖くないムーブセマンティクス](http://yohhoy.hatenablog.jp/entry/2012/12/15/120839)
|
5
5
|
- [std::moveは使用上の注意をよく読み、用法・用量を守って正しくお使い下さい。](https://qiita.com/yohhoy/items/0f44c44090b4a55b5f3c)
|
6
6
|
|
7
|
+
後者より引用:
|
7
8
|
|
9
|
+
> - `std::move`関数 **それ自身は、何の処理も行いません**。
|
10
|
+
> - `std::move`関数は、**型キャスト(type cast)** しか行いません。
|
11
|
+
> - 実際の "ムーブ操作" 処理を行うのは、構築/代入対象となるクラス自身です。
|
12
|
+
> - 関数名moveが示すとおり、「ムーブセマンティクス」を **ソースコード上で明示するラベル** に過ぎません。
|
13
|
+
> - C++文法上は、明示的な型キャストにより "ムーブ操作" を行えます。`std::move関数`は必須ではありませんが、** 分かりやすさのため** 利用が強く推奨されます。
|
14
|
+
|
15
|
+
|
8
16
|
----
|
9
17
|
|
10
18
|
> 右辺値参照にキャストしているということは、返り値は右辺値ですか?
|