Здравствуйте, 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. Так зёрнышко по зёрнышку и мы не влезем в память нашего чайника.
Причём в С++ давно нашли решение этой дилеммы. Те, кому нужна безопасность, просто обвешиваются санитайзерами и не лезут в дела других. Но конечно человек так не умеет. Ему обязательно надо рассказать остальным почему они мудаки и поступают неправильно