Re[2]: C++ illegal instruction
От: sergii.p  
Дата: 06.08.25 16:49
Оценка: +1
Здравствуйте, serg_joker, Вы писали:

_>Вы действительно хотите, чтобы для такого кода:


тут не вопрос в нашем желании. Большинство более-менее ориентированы на безопасность. Это потому, что у нас ресурсов обычно хоть попой жуй. Но С++ рассчитан больше на людей, которые программируют под чайник или мусорное ведро.
Давайте посмотрим такой код:

enum class Type {
    Unknown,
    _1,
    _2,
    _3
};
Type parse(int flag) {
    switch (flag & 3){
        case 0: return Type::_1;
        case 1: return Type::_2;
        case 2: return Type::_3;
    }
}


здесь по вашей логике надо истошно кричать и материться: забыли default или return. Но с точки зрения программиста, у него не может прийти код 3. Может у него раньше стоит проверка и сразу делается вывод об ошибке. Зачем ему явно обрабатывать невозможный сценарий? Тем более что в результате добавления return мы получим вместо 2-х инструкций 4. А функцию с 4 инструкциями компилятор может уже не захотеть инлайнить, например. А если даже захочет, то это уже рост кода на n*2. Так зёрнышко по зёрнышку и мы не влезем в память нашего чайника.
Причём в С++ давно нашли решение этой дилеммы. Те, кому нужна безопасность, просто обвешиваются санитайзерами и не лезут в дела других. Но конечно человек так не умеет. Ему обязательно надо рассказать остальным почему они мудаки и поступают неправильно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.