はじめに 「C++アドベントカレンダーが埋まらない〜」という悲鳴が聞こえてきたので、小ネタを投下します。 C++には「未定義動作」というものが存在します。いや、もちろん他の言語にもあるんですけど、C++の未定義動作はちょっと雰囲気が違っています。つまり、世の中には「C++未定義動作を愛する人」というのがいるんですね。愛するというか、未定義動作の匂いを嗅ぎつけるとどこからともなくやってきて「ハナカラアクマ!」と叫びます。「ハナカラアクマ!」というのが何か詳しくは知りませんが、未定義動作を浄化するためのおまじないのようなものだと思えば間違いないと思います。 そんなわけで、うっかり未定義動作を踏んだコードを書いて公開しようものなら、「シープラプラシヨウケイサツ」という秘密結社のメンバーがやってきて、コメント欄で「ハナカラアクマ!」と叫ばれてしまいます。 で、世の中様々な未定義動作の例が落ちている
![未定義動作により最適化レベルで結果が変わるコード - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/acdd325be7aee0348482509717ed1929398a5002/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-f625e957b80c4bd8dd47b724be996090.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU2JTlDJUFBJUU1JUFFJTlBJUU3JUJFJUE5JUU1JThCJTk1JUU0JUJEJTlDJUUzJTgxJUFCJUUzJTgyJTg4JUUzJTgyJThBJUU2JTlDJTgwJUU5JTgxJUE5JUU1JThDJTk2JUUzJTgzJUFDJUUzJTgzJTk5JUUzJTgzJUFCJUUzJTgxJUE3JUU3JUI1JTkwJUU2JTlFJTlDJUUzJTgxJThDJUU1JUE0JTg5JUUzJTgyJThGJUUzJTgyJThCJUUzJTgyJUIzJUUzJTgzJUJDJUUzJTgzJTg5JnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkNtaWRkbGUmcz0zYWUxZWQ4ZTljN2FlOTQ2OGJmNzlmYzFmNjRmZmQ4Mg%26mark-x%3D142%26mark-y%3D151%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa2FpdHlvMjU2JnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz02Mjg2NmFlN2IwNmUwODllNTI0NjNkOWFjMGU1YTc3Ng%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Deea47a119498d8e2b2fb52c742a241cb)