170 похожих чатов

В смысле, и как тогда. например здесь http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1766 сделали все

логично, out-of-range value — что с ним делать? UB. дает смысл. а вот в последнем драфте добавили "If the enumeration type does not have a fixed underlying type...". при этом вроде как у scoped enum есть fixed type — int ("For a scoped enumeration type, the underlying type is int if it is not explicitly specified. In both of these cases, the underlying type is said to be fixed."). и что тогда, enum class foo {a,b}; {static_cast<foo>(999);} не UB получается, в последней версии драфта? не дает смысл.

7 ответов

26 просмотров

UB только для unscoped enum без явно определённого underlying type, и то нужно попасть вне диапазона между минимальным значением и максимальным

ALIVEBEEF- Автор вопроса
Ofee Oficsu
UB только для unscoped enum без явно определённого...

хорошо, где написано, что призойдет в out-of-range случае для scoped enum?

Ofee Oficsu
UB только для unscoped enum без явно определённого...

Блин, получается для enum class недостаточно просто switch о всем значениям бахнуть?

Ofee Oficsu
Всё верно, default метка не помешает

default метка как раз мешает, т.к. не срабатывает варнинг компилятора на то что ты не все значения обработал

Kirill Bolshakov
default метка как раз мешает, т.к. не срабатывает ...

Как вариант – отказаться от enum class в пользу обычного enum, если это возможно. К сожалению, оба обладают слишком большим набором особенностей

Kirill Bolshakov
default метка как раз мешает, т.к. не срабатывает ...

ну так и обрабатывай спокойно только те значения, которые указаны в энаме, у тебя ведь явно в этом случае не strong typedef. А кто там решит кастить всякую левую хрень в твой тип ссзб

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта