|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
Получение типа на основе строкового литерала01.05.2017, 22:01. Показов 1336. Ответов 11
Метки нет (Все метки)
Добрый вечер,
как можно красиво получить тип на основе строкового литерала?
0
|
||||||
| 01.05.2017, 22:01 | |
|
Ответы с готовыми решениями:
11
Заключение в кавычки строкового литерала в индексах ассоциативного массива Преобразование строкового типа в переменную типа float Создать дерево на основе строкового массива |
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
| 01.05.2017, 22:27 | |
|
rikimaru2013,
decltype("A")?
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 01.05.2017, 22:30 | |||||||
|
http://rextester.com/JGS6744
1
|
|||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 01.05.2017, 22:56 [ТС] | ||
|
Всё круто - но вопрос то другой
Я ждал. что статичность функции GetType("A") не позволяет в зависимости от значения строкового литерала менять возвращаемый тип известный на этапе компиляции. Или крутой пример в стиле "С++ может всё". Но за пример фабрики спасибо, хоть она ближе как ответ "вы сами не знаете, что вам надо " - или как говорил великий hoggy, (а я запомнил ) - у меня проблема молоткаДобавлено через 5 минут
0
|
||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
| 01.05.2017, 22:59 | |
|
rikimaru2013, о, теперь мне стал понятен смысл вопроса. Это точно нельзя сделать стандартными средствами языка, и макросы тут не помогут. Остается только создать свой предкомпилятор, как MOC в Qt.
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
| 01.05.2017, 23:04 [ТС] | ||||||
|
nonedark2008, моих знаний не хватает самому ответить на этот вопрос - но кажись способы есть:
1) строковый литерал кажись может выступать параметром шаблона и парсить static const char* const на содержимое в шаблоне тоже вроде бы можно 2) где-то видел такого зверя как std::type_id который так же возможно может помочь. P.S.hoggy, подскажите зачем вы применили такой способ
0
|
||||||
|
Ушел с форума
|
||||||
| 01.05.2017, 23:10 | ||||||
|
Если я правильно понял вопрос, можно сделать как-то так:
sizeof (detect(L"aaa")) будет равен sizeof (int). Этими значениями можно параметризировать специализацию шаблона и в нем вывести нужные типы.
0
|
||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||||||
| 01.05.2017, 23:31 | ||||||
Сообщение было отмечено rikimaru2013 как решение
Решение
Хотя, какое-то такое Г работает:
Добавлено через 12 минут rikimaru2013, О! Кажись нагуглилось именно то самое Г, которое тебе и нужно =)
1
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||||||||||||
| 01.05.2017, 23:48 | ||||||||||||
Сообщение было отмечено rikimaru2013 как решение
Решение
rikimaru2013,
Если взять функцию ct_hash отсюда, то можно сделать так:
Если этого недостаточно (ну там о коллизиях переживания какие), то в С++14 был пропозал: Literal operator templates for strings, но в редакцию С++14 он не попал. Сейчас существуют реализации в качестве расширения в clang и gcc. Благодаря ему можно сделать так:
Всякое интересное на эту тему можно посмотреть здесь: https://github.com/duckie/named_types Добавлено через 2 минуты
5
|
||||||||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 01.05.2017, 23:51 [ТС] | |
|
DrOffset, по молодости, по глупости
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 02.05.2017, 00:09 | |
|
0
|
|
| 02.05.2017, 19:03 | |
|
0
|
|
| 02.05.2017, 19:03 | |
|
Помогаю со студенческими работами здесь
12
Создание строкового калькулятора на основе бинарного дерева
Получение строкового значения текущей ячейки Данные строкового типа Переменная строкового типа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|