質問するログイン新規登録

質問編集履歴

1

m

2020/11/24 15:56

投稿

yumetodo
yumetodo

スコア5852

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))