teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

quote

2018/03/06 08:43

投稿

yohhoy
yohhoy

スコア6191

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
  > 右辺値参照にキャストしているということは、返り値は右辺値ですか?