|
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
|
||||||
Перечисления (enum): для чего они нужны? Как, когда и какими перечислениями уместнее пользоваться?18.02.2017, 21:12. Показов 19969. Ответов 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
|
|
|
Форумчанин
8217 / 5048 / 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 | |
|
Struts для чего они нужны? .elf и для чего они нужны
Что такое саттелиты и для чего они нужны? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|