|
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
|
||||||||||||||||
Вывод перечисления в виде текста26.05.2021, 11:31. Показов 6132. Ответов 20
Метки нет (Все метки)
Доброго времени суток.
Допустим, есть у меня перечисление:
0
|
||||||||||||||||
| 26.05.2021, 11:31 | |
|
Ответы с готовыми решениями:
20
Вывод значения перечисления enum в консоль в форматированном виде Вывод текста с БД в виде ссылки
|
|
Just Do It!
|
|||||||
| 01.06.2021, 10:45 | |||||||
0
|
|||||||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
||||||
| 01.06.2021, 10:56 | ||||||
|
MikeNew, я чаще всего вот так борюсь
one, comparing==1
0
|
||||||
|
Just Do It!
|
||
| 01.06.2021, 11:03 | ||
|
да и код в разы лаконичнее, особенно для емких перечислений.
0
|
||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
|
| 01.06.2021, 11:11 | |
|
XLAT, там искать то в таких объёмах . Мапа даст выигрыш, если строк будет, скажем, 100 и больше и при условии интенсивного использования. Да и то, нужно протестировать и замерить, чтобы доказать, что и 100 будет тормозить )
в общем, мапа тут не нужна, там одно только динамическое выделение памяти скорость съест (поправочка: оно там, само собой, не постоянное, а только при создании экземпляра) Добавлено через 2 минуты это всё было про сравнение строк. А насчёт свича - свич всегда быстрее любой мапы Добавлено через 2 минуты короче говоря, в общем случае (99.9%) тут можно именно в таком виде сделать. А уж если за мапу браться, то тогда уж std::unordered_map
0
|
|
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
|||||||
| 01.06.2021, 11:35 | |||||||
![]() Добавлено через 20 секунд лично я - за упрощение Добавлено через 14 минут XLAT, вариант твоего варианта)
1
|
|||||||
|
Just Do It!
|
|||||||
| 01.06.2021, 11:47 | |||||||
|
НО ... упрощение упрощению рознь. упрощение через универсализм по мне реально РУЛИТ. пример, те же обобщённые контейнеры из стандарта. а в данном случае: единождное написание такой структуры, которая на все случаи с применением через слепую копипасту. Этот класс может быть и хитёр в написании, но тривиален в применении. Типа так:
0
|
|||||||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
||
| 01.06.2021, 12:01 | ||
|
XLAT, пост №3 - это как раз для копипасты, там даже ошибиться сложно, потому что компилятор заругается, если тип не сменить, а при смене типа заругается на отсутствующие константы
Но тут есть проблема - не всегда будут прописаны значения после = (обычно их там и не будет). Так что, ждём, когда уже в C++ подвезут рефлексию. В C++20 вроде ещё нетуДобавлено через 2 минуты студия позволяет выделять с альтом прямоугольный блок текста и перемещать-копировать его. Поэтому в студии такие копипасты делаются в пару движений (ну ладно, не пару, а десять )
0
|
||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
||
| 01.06.2021, 12:12 | ||
|
Добавлено через 1 минуту можно и без оборачивающего класса, если ты о нём. Тогда функции надо сделать не friend, а inline (если располагается в заголовке)
0
|
||
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,120
|
||||||
| 01.06.2021, 12:14 | ||||||
|
Пользуюсь SDK одной фирмы. Для перевода в строку они делают макрос сразу за перечислением. В одном месте перечисление было очень длинным, на сотню констант или даже больше, там им пришлось заменить макрос на функцию. Примерно так это у них выглядит:
1
|
||||||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
||||||
| 01.06.2021, 12:17 | ||||||
|
XLAT, можно и без оборачивающего класса, если ты о нём. Тогда функции надо сделать не friend, а inline (если располагается в заголовке)
Ygg, что-то мне подсказывает, что такой макрос сильно вдарит по времени компиляции )) Функция то лучше в этом плане, а городить всё равно столько же
0
|
||||||
|
Just Do It!
|
||||||
| 01.06.2021, 13:07 | ||||||
|
Алексей1153,
ладно, выше я конеш немножко утрировал, для такой задачи чтобы парсить это слишком, хотя свой питонистый препроцессор на пребилде иметь это уже дело чести ![]() и всё же в поддержку универсализма:
поправил очепятки ...
0
|
||||||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
|
| 01.06.2021, 13:13 | |
|
XLAT, а чем так удобнее, чем в посте №7 ? Да ещё и мап будет в каждом экземпляре WHAT создаваться. А вот статик не будет
0
|
|
|
Just Do It!
|
|||
| 01.06.2021, 13:28 | |||
|
но для меня щас лениво лезть в дизасм, чтобы проконтролировать этот момент. законстантив всё что можно я надеюсь, что всё обойдётся: компил сам разрулит
0
|
|||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
|
| 01.06.2021, 13:45 | |
|
а, так структура то не WHAT, а What . Короче, у меня стопудов проще и читается лучше ))
макросы я вообще не использую давно (кроме глобальных флагов компиляции)
0
|
|
|
Just Do It!
|
|||
| 01.06.2021, 13:56 | |||
|
чтобы его ПОЧИТАТЬ? конечно, вы можете написать, что и шаблоны вы вообще не используете. и всё же, подытожу: серебряной пули нет. аминь.
0
|
|||
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
|
|
| 01.06.2021, 14:03 | |
|
XLAT, это же не какая-то чужая библа, а свой код.
Шаблоном - вряд ли, а функция с перечислением строк - запросто и наглядно Добавлено через 47 секунд пуля будет с привозом рефлексии - весь этот топик будет в прошлом
0
|
|
|
Just Do It!
|
||
| 01.06.2021, 14:13 | ||
|
за счёт скорости, простоты, той же наглядности и тп.. уже раздаются в шуме жмаканья кейсов.
0
|
||
| 01.06.2021, 14:13 | |
|
Помогаю со студенческими работами здесь
20
Вывод на экран в виде текста Вывод текста в виде псевдо графики Вывод результата запроса в виде текста Вывод текста в форме в виде списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|