はじめに この記事ではC++11以降を扱います。 適宜規格書を参照しますが、翻訳する暇がないのでしません。 英語がわからない場合、雰囲気で頑張ってください。 C++ MIX #1 で発表したことの焼き増しです。 恥ずかしながら、発表に派手にミスがあったので修正後のスライドを上げてます。 Undefined Behaviorと愉快な仲間たち Undefined Behaviorは長いので以降UBと略すことにする。 UBが起こるとどうなるか なんでもあり。 コンパイラがどんなコードを生成しても規格書上合法。 別にHDの中身を全部消すコードを吐き出しても問題ない、そんなことはありえないが。 UBが起こると、そのあとの挙動は一切不明で何が起こるか保証されない。 なので、UBは絶対に起こしてはならない。 何故か無限ループしているが、理由がわからなかったり。 いつの間にかかオブジェクトが死んでたり。