質問編集履歴
1
m
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -6,4 +6,6 @@
|
|
|
6
6
|
B* b = reinterpret_cast<B*>(&a);
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
上のようなコードがあるとき、変数`b`にたいしてなにか操作をしたらstrict alias rule違反となるのは明らかだと思われます。しかしながら`B* b = reinterpret_cast<B*>(&a);`の段階ですでに違反でUBなのかこの時点では大丈夫なのかわかりません。実際にアクセスが起こったときの型の問題と考えると大丈夫なような気もしてきます。
|
|
9
|
+
上のようなコードがあるとき、変数`b`にたいしてなにか操作をしたらstrict alias rule違反となるのは明らかだと思われます。しかしながら`B* b = reinterpret_cast<B*>(&a);`の段階ですでに違反でUBなのかこの時点では大丈夫なのかわかりません。実際にアクセスが起こったときの型の問題と考えると大丈夫なような気もしてきます。
|
|
10
|
+
|
|
11
|
+
(コードの出処: [https://rinatz.github.io/cpp-book/ch08-01-cpp-casts/#reinterpret_cast](https://rinatz.github.io/cpp-book/ch08-01-cpp-casts/#reinterpret_cast))
|