回答編集履歴
6
std::move除去
test
CHANGED
@@ -30,9 +30,9 @@
|
|
30
30
|
|
31
31
|
my_vector<double> y(N, 2.0);
|
32
32
|
|
33
|
-
my_vector<double> ans(
|
33
|
+
my_vector<double> ans(x + y);
|
34
34
|
|
35
|
-
//もしくは my_vector<double> ans =
|
35
|
+
//もしくは my_vector<double> ans = x + y;
|
36
36
|
|
37
37
|
}
|
38
38
|
|
5
main文はそのままにを満たせていない旨追記
test
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
+
・main文はそのままに
|
2
|
+
|
3
|
+
・返り値のメモリを確保せずに
|
4
|
+
|
1
|
-
|
5
|
+
を満たせてはいませんが、`my_vector`にムーブコンストラクタとムーブ代入演算子を定義したうえでこう?
|
2
6
|
|
3
7
|
```C++
|
4
8
|
|
4
リンク追加
test
CHANGED
@@ -33,3 +33,9 @@
|
|
33
33
|
}
|
34
34
|
|
35
35
|
```
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
ムーブについては以下を参照。
|
40
|
+
|
41
|
+
[右辺値参照・ムーブセマンティクス](https://cpprefjp.github.io/lang/cpp11/rvalue_ref_and_move_semantics.html)
|
3
返り値のメモリを確保しないわけではない旨追記
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
`my_vector`にムーブコンストラクタとムーブ代入演算子を定義したうえでこう?
|
1
|
+
返り値のメモリを確保せずにではないですが、`my_vector`にムーブコンストラクタとムーブ代入演算子を定義したうえでこう?
|
2
2
|
|
3
3
|
```C++
|
4
4
|
|
2
Nの値修正
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
int main() {
|
22
22
|
|
23
|
-
size_t N =
|
23
|
+
size_t N = 100;
|
24
24
|
|
25
25
|
my_vector<double> x(N, 1.0);
|
26
26
|
|
1
ムーブコンストラクタ使用例追加
test
CHANGED
@@ -26,7 +26,9 @@
|
|
26
26
|
|
27
27
|
my_vector<double> y(N, 2.0);
|
28
28
|
|
29
|
-
my_vector<double> ans
|
29
|
+
my_vector<double> ans(std::move(x + y));
|
30
|
+
|
31
|
+
//もしくは my_vector<double> ans = std::move(x + y);
|
30
32
|
|
31
33
|
}
|
32
34
|
|