diff --git a/what_is_ub.md b/what_is_ub.md index eed13ec..3cc257f 100644 --- a/what_is_ub.md +++ b/what_is_ub.md @@ -41,7 +41,7 @@ С неопределенным поведением часто путают другие понятия. 1. Еще одна страшная аббревиатура UB — неуточненное (_unspecified_) поведение. Стандарт не уточняет, что именно может произойти, но описывает варианты. Так, например, порядок вычисления аргументов функции — поведение неуточненное. 2. Поведение, определяемое реализацией (_implementation-defined_) — надо смотреть документацию для вашей платформы и вашего компилятора. -3. Ошибочное поведения (_erroneous_) — новинка C++26. Часть неопределенного поведения ,будет возможно переквалифицированна в эту категорию. Например, так поступили с чтением неинициализированных переменных. Разница с неопределенным — компилятору *очень рекомендуется* выдавать диагностики и запрещается выполнять умные оптимизации с неожиданными побочными эффектами. +3. Ошибочное поведения (_erroneous_) — новинка C++26. Часть неопределенного поведения будет, возможно, переквалифицированна в эту категорию. Например, так поступили с чтением неинициализированных переменных. Разница с неопределенным — компилятору *очень рекомендуется* выдавать диагностики и запрещается выполнять умные оптимизации с неожиданными побочными эффектами. Эта тройка намного лучше неопределенного, хотя и имеет с ним одну общую черту: программа, полагающаяся на любое из них, вообще говоря, непереносима.