回答編集履歴

1

m

2020/04/09 08:32

投稿

yumetodo
yumetodo

スコア5850

test CHANGED
@@ -11,3 +11,29 @@
11
11
 
12
12
 
13
13
  脳みそが回ってないのでこれを解釈するのは寝て起きてからにすることにします。
14
+
15
+
16
+
17
+ ---
18
+
19
+
20
+
21
+ > [https://twitter.com/yumetodo/status/1248107858731749376?s=20](https://twitter.com/yumetodo/status/1248107858731749376?s=20)
22
+
23
+ > サンプルにある
24
+
25
+ > *pb; // OK: pb points to valid memory
26
+
27
+ > がなんでvalidなのかよくわからないです。なんでpb->f();がだめなのにデレファレンスしていいのか。
28
+
29
+
30
+
31
+ > [https://twitter.com/EzoeRyou/status/1248144850819502080?s=20](https://twitter.com/EzoeRyou/status/1248144850819502080?s=20)
32
+
33
+ > 妥当なメモリを参照しているというだけでD1としての寿命は尽きているからでは?
34
+
35
+
36
+
37
+ > [https://twitter.com/EzoeRyou/status/1248145254345109505?s=20](https://twitter.com/EzoeRyou/status/1248145254345109505?s=20)
38
+
39
+ > アドレスは取得できるしそのアドレスをvoid *型にキャストすることもできるが、pbは実装側からみるとD1を指していたようにみえるので(mutate()呼び出しは不透明)、D1を指しているものとして最適化がされてしまうかもしれないから動作を保証できないということでは。