400
Post/Edit Page
構文規則違反、ODR違反、意味規則違反。C++プログラムの正常な動作が保証されない三大規則違反である。▼各違反には「要診断」と「診断不要」がある。要診断の規則違反があった場合、処理系は翻訳時に何らかの診断情報を出力しなければならないが、診断不要の規則違反については処理系には告知義務がない。故に、診断不要な規則違反を犯したコードの実行時の挙動は未定義である。▼一部の意味規則違反を除く規則違反はプログラムの正常動作を保証しない。一方、「動作未定義」は、処理系によっていかなる挙動に翻訳してもよいと定められた正常な動作である。動作未定義は規則違反ではない。▼「動作未規定」は似ているが動作未定義ではない。動作未規定とは、翻訳によって可能な処理がいくつかある場合、その選択が処理系に任されているという意味である。このうち、どんな処理を選んだかの文書化を義務付けられているものが「処理系依存の動作」である。
pass:
Draft