|
Неэпический
|
|||||||||||||||||||||
Обертка над boost::lexical_cast для работы с unsigned типами31.01.2016, 15:29. Показов 4363. Ответов 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[] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|