回答編集履歴

2

リンク追加

2019/05/04 08:27

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -62,4 +62,12 @@
62
62
 
63
63
  このケースでは、returnのstd::moveは書いた方がいいような気がします。
64
64
 
65
- NRVOは機能できない筈ですし、構文的にはコピーになる筈です。コンパイラがstd::moveなしでも左辺値をムーブしてくれればよいのですが。(右辺値参照は左辺値です。わけわからんですね。)
65
+ NRVOは機能できない筈ですし、構文的にはコピーになる筈です。コンパイラがstd::moveなしでも左辺値をムーブしてくれればよいのですが。
66
+
67
+
68
+
69
+ ↓右辺値参照は左辺値です。わけわからんですね。
70
+
71
+ https://cpprefjp.github.io/lang/cpp11/rvalue_ref_and_move_semantics.html
72
+
73
+ > 右辺値参照で宣言された変数は右辺値ではなく、左辺値である。

1

補足

2019/05/04 08:27

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -60,4 +60,6 @@
60
60
 
61
61
  ```
62
62
 
63
- このケースでは、returnのstd::moveは書いた方がいいような気がします。(NRVOは機能できない筈ですから。)
63
+ このケースでは、returnのstd::moveは書いた方がいいような気がします。
64
+
65
+ NRVOは機能できない筈ですし、構文的にはコピーになる筈です。コンパイラがstd::moveなしでも左辺値をムーブしてくれればよいのですが。(右辺値参照は左辺値です。わけわからんですね。)