回答編集履歴
1
m
answer
CHANGED
@@ -4,4 +4,17 @@
|
|
4
4
|
>
|
5
5
|
> ストレージが再利用される時に元のオブジェクトの寿命は一旦尽きているのだから原文は正しいのでは。
|
6
6
|
|
7
|
-
脳みそが回ってないのでこれを解釈するのは寝て起きてからにすることにします。
|
7
|
+
脳みそが回ってないのでこれを解釈するのは寝て起きてからにすることにします。
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
> [https://twitter.com/yumetodo/status/1248107858731749376?s=20](https://twitter.com/yumetodo/status/1248107858731749376?s=20)
|
12
|
+
> サンプルにある
|
13
|
+
> *pb; // OK: pb points to valid memory
|
14
|
+
> がなんでvalidなのかよくわからないです。なんでpb->f();がだめなのにデレファレンスしていいのか。
|
15
|
+
|
16
|
+
> [https://twitter.com/EzoeRyou/status/1248144850819502080?s=20](https://twitter.com/EzoeRyou/status/1248144850819502080?s=20)
|
17
|
+
> 妥当なメモリを参照しているというだけでD1としての寿命は尽きているからでは?
|
18
|
+
|
19
|
+
> [https://twitter.com/EzoeRyou/status/1248145254345109505?s=20](https://twitter.com/EzoeRyou/status/1248145254345109505?s=20)
|
20
|
+
> アドレスは取得できるしそのアドレスをvoid *型にキャストすることもできるが、pbは実装側からみるとD1を指していたようにみえるので(mutate()呼び出しは不透明)、D1を指しているものとして最適化がされてしまうかもしれないから動作を保証できないということでは。
|