mirror of
https://github.com/Nekrolm/ubbook.git
synced 2025-12-16 20:37:03 +03:00
Update what_is_ub.md
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
С неопределенным поведением часто путают другие понятия.
|
||||
1. Еще одна страшная аббревиатура UB — неуточненное (_unspecified_) поведение. Стандарт не уточняет, что именно может произойти, но описывает варианты. Так, например, порядок вычисления аргументов функции — поведение неуточненное.
|
||||
2. Поведение, определяемое реализацией (_implementation-defined_) — надо смотреть документацию для вашей платформы и вашего компилятора.
|
||||
3. Ошибочное поведения (_erroneous_) — новинка C++26. Часть неопределенного поведения ,будет возможно переквалифицированна в эту категорию. Например, так поступили с чтением неинициализированных переменных. Разница с неопределенным — компилятору *очень рекомендуется* выдавать диагностики и запрещается выполнять умные оптимизации с неожиданными побочными эффектами.
|
||||
3. Ошибочное поведения (_erroneous_) — новинка C++26. Часть неопределенного поведения будет, возможно, переквалифицированна в эту категорию. Например, так поступили с чтением неинициализированных переменных. Разница с неопределенным — компилятору *очень рекомендуется* выдавать диагностики и запрещается выполнять умные оптимизации с неожиданными побочными эффектами.
|
||||
|
||||
Эта тройка намного лучше неопределенного, хотя и имеет с ним одну общую черту: программа, полагающаяся на любое из них, вообще говоря, непереносима.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user