質問編集履歴
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -39,4 +39,37 @@
|
|
39
39
|
|
40
40
|
以上のコードを実行してみたところ、すべての変数のアドレスが違いました。
|
41
41
|
moveの場合アドレスが変わらないことを想定していました(すでに認識が間違っている?)
|
42
|
-
defaultではmoveの挙動にならないのでしょうか。
|
42
|
+
defaultではmoveの挙動にならないのでしょうか。
|
43
|
+
|
44
|
+
【追記】
|
45
|
+
```cpp
|
46
|
+
#include <iostream>
|
47
|
+
#include <vector>
|
48
|
+
#include <string>
|
49
|
+
|
50
|
+
using namespace std;
|
51
|
+
|
52
|
+
class X
|
53
|
+
{
|
54
|
+
public:
|
55
|
+
vector<string> s;
|
56
|
+
X() = default;
|
57
|
+
X(X&) = default;
|
58
|
+
X(X&& x) noexcept : s(move(x.s)) {};
|
59
|
+
};
|
60
|
+
|
61
|
+
int main()
|
62
|
+
{
|
63
|
+
X x1;
|
64
|
+
cout << &x1.s << endl;
|
65
|
+
|
66
|
+
X x_c1(x1);
|
67
|
+
cout << &x_c1.s << endl;
|
68
|
+
|
69
|
+
X x_m1(move(x1));
|
70
|
+
cout << &x_m1.s << endl;
|
71
|
+
}
|
72
|
+
```
|
73
|
+
|
74
|
+
以上のコードでもアドレスが変わるのはなぜでしょうか…
|
75
|
+
moveを定義したつもりなのですが…
|