Привет. Я читал несколько статей о том, что undefined behaviour это страшно, что его нельзя игнорировать, потому что оптимизации компиляторов используют undefined behaviour и могут из-за него удалить часть кода, потому что она типа unreachable или что-то типа того. Короче я это в теории знаю, но не знаю сильно подробностей - хотелось бы примеры, как именно undefined behaviour приводит к тому, что оптимизации компилятора делают так, что код делает не то, что днище-программисту кажется, что он должен делать. Буду эти примеры в интернет пояснениях всяких undefined behaviour ситуаций показывать.
Еще мне интересно, считают ли компиляторы signed integer overflow за undefined behaviour и оптимизируют ли программу, учитывая тот факт, что это запрещено? Мне кажется, было бы наиболее разумно им делать вид, что это поведение вполне себе определено, и не выпиливать из-за этого код, потому что по-моему 90% C++ программистов, да и C программистов тоже не знают о том, что это UB.