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 ответов

14 просмотров

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. А кто там решит кастить всякую левую хрень в твой тип ссзб

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта