1. ホーム
  2. c++

[解決済み] IB」「UB」とは具体的にどういう意味ですか?

2022-09-03 12:54:57

質問

IB と UB という用語が、特に C++ の文脈で何度か使われているのを見かけました。 ググってみましたが、どうやらこれらの 2 文字の組み合わせはたくさん使われているようです :P

では、お聞きしますが、それらが悪いことのように言われるとき、それらは何を意味するのでしょうか?

どのように解決するのですか?

IB: Implementation-defined Behaviour (実装定義動作) です。 この規格では、正確な動作の定義は特定のコンパイラやプラットフォームに任されていますが、定義されていることを要求しています。

実装で定義された振る舞いを使用することは便利ですが、コードの移植性が低くなります。

UB: Undefined Behaviour (未定義動作)。 標準では、未定義の振る舞いを呼び出すプログラムがどのように振る舞うべきかは指定されていません。理論的には鼻から悪魔を飛ばすことができるため、quot;nasal demons" としても知られています。

未定義の振る舞いを使うことは、ほとんど常に悪い考えです。時々うまくいくように見えても、環境、コンパイラ、またはプラットフォームへの変更は、ランダムにあなたのコードを破壊する可能性があります。