|
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
|
||||||
Перечисления (enum): для чего они нужны? Как, когда и какими перечислениями уместнее пользоваться?18.02.2017, 21:12. Показов 19235. Ответов 40
Предположим есть такой код:
0
|
||||||
| 18.02.2017, 21:12 | |
|
Ответы с готовыми решениями:
40
Что за драйвера такие, для чего они и нужны ли они вообще? Зачем нужны перечисления enum? |
|
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
|
||||||||
| 19.02.2017, 13:15 | ||||||||
0
|
||||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
| 19.02.2017, 14:05 | ||||||
|
enum.h
https://github.com/aantron/better-enums
GbaLog-, gru74ik, ну что там ребята?! Я вам просто так не прощу, что я в священное для программистов воскресенье кодил из-за вас.
0
|
||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 19.02.2017, 22:21 | |
|
GbaLog-, я у вас тоже самое спросил выше, что будет при
enum {A, B, C} и cin где ввели 18243 и вы мне не ответили... . Только умничали))
0
|
|
|
Модератор
|
||
| 20.02.2017, 06:38 | ||
|
rikimaru2013, ты как-то всё совсем в другое русло перевёл. Библиотечный
enum, это, конечно, прекрасно, но как это кореллирует с беседой о возможностях, встроенных в язык? Речь-то шла об перечислениях, которые нам доступны "из коробки". И как это кореллирует с заявлением:
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 20.02.2017, 10:49 | |
|
gru74ik, снова мимо! Много букв и нету твоего мнения, почему enum лучше enum class.
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 20.02.2017, 11:15 | |
|
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 20.02.2017, 11:21 | |
|
avgoor, я же не Эксперт в С++ как некоторые в этой теме, но всё же что говорят в этой теме http://stackoverflow.com/quest... enum-class
0
|
|
|
Модератор
|
|||
| 20.02.2017, 11:24 | |||
|
0
|
|||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 20.02.2017, 11:25 | |
|
rikimaru2013, По сравнению с тем, что написано в стандарте с++17, мне абсолютно по фиг, что написано на каком-то форуме в 14 году.
1
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 20.02.2017, 11:36 | ||
|
avgoor, обновил свой стандарт с 2014 на 2017 - спасибо)
что будет при enum {A, B, C} и cin где ввели 18243 не будет сужающего преобразования ведь по умолчанию enum имеет underlying type int, как и числовой литерал 18243. Да и в вашем коде нету ill-formed, ведь данный пункт про преобразование int(42) к enum : unsigned char является ill-formed - потому, что каст с int к unsigned char называется именно narrowing conversion, но не как не int к int как в моем случаи, и не int к uint32_t как в вашем.
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 20.02.2017, 11:50 | |
|
rikimaru2013, Мысль была вот в чем. Во многих местах, где традиционно использовались enum-ы использовать enum class было не удобно. Поэтому, возможно, многие в этой теме возмутились вашими словами. И поэтому в 17 стандарте появились эти изменения.
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 20.02.2017, 12:05 | |
|
avgoor, что-то вы не ответили на вопросы - ну да ладно) Я не гордый - забуду!) А про enum - вы как считаете: для типа самолётов нужен enum или enum class ?
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|||||
| 20.02.2017, 12:13 | |||||
1
|
|||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 20.02.2017, 12:18 | |
|
avgoor, согласен с вами, для сериализации/десериализации enum нужно использовать только строки с корректной обработкой устаревших данных(обратная совместимость).
А вопросы: значит у солдатов нет вопросов) Проверил через символ "?" - действительно нету вопросов) Я так никогда не заблуждался - спасибо)
0
|
|
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 20.02.2017, 12:46 | ||
|
Я не буду приводить кучу довод "за" enum class, расскажу лучше реальный случай из практики, как раз на прошлой неделе было. Жила-была в проекте замечательная функция, которая разбирала xml и возвращала код ошибки. По всем феньшуям, список ошибок был оформлен как enum (но не enum class). Была функция удобной и нужной. И расползлись вызовы её по всему проекту. И в каких-то местах обработка результата, возвращаемого функцией шла через switch-case, в каких-то записывалась в int и передавалась другим функциям, а в каких-то нужно было определить тип ошибки и бралось смещение (+ константа). Более того, некоторые ошибки нужно было залогировать и были написаны два массива, один содержал развёрнутое текстовое описание ошибок, другой короткое. Разумеется, соответствие бралось по индексу массива (удобно же, и без преобразований). Но вот понадобилось добавить новый вид ошибки, казалось бы - делов? Ан-нет, пойди найди все места, где добавление ничего не сломает. Был бы поиск по scope как у enum class, была б задача проста, а тут надо все int-ы перебрать, да никого не обидеть. Вообщем растянулась правка с 5 минут на 5 часов, да и то коммит делался с небольшим опасением. Кликните здесь для просмотра всего текста
Хотелось бы закончить фразой "Таска ложь, да в ней намёк..." но, к сожалению, что было то было. Всем кто дочитал до конца низкий поклон
Если кому интересны все плюсы и минусы enum class (а также пример когда enum предпочтительнее), прочтите соответствующую главу у Майерса в "42 рекомендации". Не охота переписывать всё то, что сказано в книге, да ещё и своим колхозным языком.
3
|
||
|
из племени тумба-юбма
|
||||||
| 04.07.2020, 22:32 | ||||||
|
Спасибо stake-k26, от него узнал, что с помощью enum, можно заменять макросы. Типа
enum {N=3, M=3};
0
|
||||||
| 04.07.2020, 22:32 | |
|
Помогаю со студенческими работами здесь
40
Struts для чего они нужны? .elf и для чего они нужны
Что такое саттелиты и для чего они нужны? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|