Многие плохие вещи произошли и продолжают происходить (или нет, кто знает, что-либо может произойти) из-за поведения undefined. Я понимаю, что это было введено, чтобы оставить какую-то манекенщицу для компиляторов для оптимизации, а может быть, и для упрощения переноса С++ на разные платформы и архитектуры. Однако проблемы, вызванные поведением undefined, кажутся слишком большими, чтобы оправдать эти аргументы. Какие еще аргументы для поведения undefined? Если их нет, почему поведение undefined все еще существует?
Изменить. Чтобы добавить мотивацию для моего вопроса: из-за нескольких неудачных опытов с меньшим количеством коварных сотрудников С++ я привык к тому, чтобы сделать мой код максимально безопасным. Утверждайте каждый аргумент, строгую const-правильность и тому подобное. Я пытаюсь уйти, поскольку мало места может использовать мой код неправильно, потому что опыт показывает, что если есть лазейки, люди будут их использовать, а потом они назовут меня о том, что мой код плохой. Я считаю, что мой код настолько безопасен, насколько это возможно, хорошая практика. Вот почему я не понимаю, почему существует поведение undefined. Может ли кто-нибудь, пожалуйста, привести пример поведения undefined, который не может быть обнаружен во время выполнения или времени компиляции без значительных накладных расходов?