|
Неэпический
|
|||||||||||||||||||||
Обертка над boost::lexical_cast для работы с unsigned типами31.01.2016, 15:29. Показов 4595. Ответов 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[] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|