|
Неэпический
|
|||||||||||||||||||||
Обертка над boost::lexical_cast для работы с unsigned типами31.01.2016, 15:29. Показов 4684. Ответов 23
Пару дней назад выяснилось, что boost::lexical_cast
не удовлетворяет нескольким требованиям в моей программе. boost::lexical_cast отказывается обрабатывать и выбрасывает исключение, если имеются пробелы в начале или в конце входной строки. Также для unsigned типов, отрицательные значения обрабатываются нормально, т.е., например, boost::lexical_cast<unsigned int>("-1") даст вполне валидное значение.Для моих целей эти два факта были неприемлемы. Собственно, Ticket #5494 как раз об этом, и там был представлен такой велосипед:
а ведь "-0", как и "+0" - вполне валидные значения. Поэтому был написан велосипед:
Использование:
P.S. Спасибо пользователям Kastaneda и hoggy за правки и дополнения. Добавлено через 31 минуту Вариант под C++11:
4
|
|||||||||||||||||||||
| 31.01.2016, 15:29 | |
|
Ответы с готовыми решениями:
23
Обертка над boost::asio Namespace boost не содержит члена lexical_cast
|
| 31.01.2016, 16:32 | |
|
Не по теме: *утащил в свою коллекцию семплов*
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 31.01.2016, 16:38 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 31.01.2016, 20:42 | |||||||
|
http://rextester.com/RUFT62725
1
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 31.01.2016, 21:12 | |
|
0
|
|
|
Неэпический
|
|||||||
| 01.02.2016, 03:33 [ТС] | |||||||
![]() О, как! Немного переделал Ваш и добавил свой. detail не менял.
Блин, ошибся немного. Забыл вырубить шаблон ustring upd: поменял код
1
|
|||||||
|
Неэпический
|
|||||||||||||||||||||
| 01.02.2016, 03:33 [ТС] | |||||||||||||||||||||
|
С учетом дополнений из темы Применение is_same для списка типов
Немного доработал код. Добавил два макроса:
TYPE_LIST_CV - добавляет к типу квалификаторыIGNORING_TYPES - список типов, которые должны игнорироваться основным шаблономНемного переработал основной шаблон string_cast, для учета указанных игнорируемых типов:
string_cast для какого-либо типа,необходимо добавить тип в список игнорируемых (если требуется игнорировать типы со всеми квалификаторами, то можно использовать TYPE_LIST_CV), и такжедобавить string_cast с этой "особой" реализацией, добавив в is_one_same соответствующий тип.Например, вот реализация:
причем, типов, включающих одну такую "специализацию" может быть несколько, например,
TYPE_LIST_CV(Glib::ustring) и TYPE_LIST_CV(char*)
0
|
|||||||||||||||||||||
|
|
||
| 01.02.2016, 18:57 | ||
|
Не по теме:
Добавлено через 7 минут Что касается сути, то не проще ли использовать сначала регулярку потом каст, если регулярка прошла ?
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 01.02.2016, 19:01 | |||
|
Добавлено через 2 минуты Не по теме: хз, что значит:
0
|
|||
| 01.02.2016, 20:51 | ||
|
Не по теме:
можно указывать регулярки для кастов туда/сюда. с циферками наверное что-то подобное должно быть. просто это с локалью напрямую никак не связанно. локали отвечают за национальные символы. и это - глобальный головняк. а не только плюсовый. что до плюсов, то местные локали/фасеты/прочий калл - эпический фейл. вылечить который можно лишь полным пересмотром всей той части архитектуры стандартной библиотеки, которая отвечает за работу со строками. полагаться на плюсовую локаль нельзя категорически.
0
|
||
|
|
|||||||
| 01.02.2016, 21:16 | |||||||
Т.е. сравнительно просто. http://docwiki.embarcadero.com... atSettings
0
|
|||||||
|
|
|||||||
| 02.02.2016, 07:19 | |||||||
"%mm-%dd-%yyyy". У меня тип для даты используется совершенно левый, поэтому есть свой велосипед перегоняющий boost:: ptime в мой тип. Есть такой мап, который по языку системы возвращает шаблон даты
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 02.02.2016, 08:48 | |
|
0
|
|
|
|
||
| 02.02.2016, 11:05 | ||
|
Никак... фэйл... Точно так же как формат даты и десятичный разделитель. Просто иногда нужно отображать в том формате в каком система, а обрабатывать в другом например если данные берутся с сайта.
0
|
||
|
|
|||
| 02.02.2016, 11:11 | |||
|
Добавлено через 3 минуты
0
|
|||
| 02.02.2016, 11:11 | |
|
Помогаю со студенческими работами здесь
20
Обёртка над WinAPI
Обертка над массивом double[] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки 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.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|