![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Unsigned Integer Parsers (uint_, etc.)Boost , Spirit 2.5.2 , Numeric Parsers
|
Имя |
---|
< |
< |
< |
boost::spirit::hex // alias:
boost::spirit::qi::hex |
< |
< |
< |
< |
![]() | Note |
---|---|
< |
![]() | Note |
---|---|
< |
template < typename T , unsigned Radix , unsigned MinDigits , int MaxDigits> struct uint_parser;
Параметр |
Описание |
по умолчанию |
---|---|---|
< | Числовой базовый тип числового парсера. | Нет |
< | База радикса. Это может быть любая база от 2..10 и 16 . | 10 |
< | Минимальное допустимое количество цифр. | 1 |
< | Максимальное допустимое количество цифр. Если это -1, то максимальный предел становится безграничным. | -1 |
Notation
Семантика выражения определяется только там, где она отличается от или не определена в<PrimitiveParser
>.
выражение |
Семантика |
---|---|
ushort_ uint_ ulong_ ulong_long
| Просмотрите неподписанное целое число, используя радикс по умолчанию (10). |
lit(num) ushort_(num) uint_(num) ulong_(num) ulong_long(num)
| Сопоставьте буквальный< |
bin oct hex
| Произведите неподписанное целое число, используя радикс 2 для< |
bin(num) oct(num) hex(num) | Сопоставьте буквальный< |
uint_parser< T, Radix, MinDigits, MaxDigits >()
| Просмотрите неподписанное целое число типа< |
uint_parser< T, Radix, MinDigits, MaxDigits >()(num)
| Сопоставьте буквальный< |
![]() | Important |
---|---|
Все числовые парсеры проверяют условия переполнения на основе типа< |
выражение |
атрибут |
---|---|
lit(num)
| < |
ushort_ ushort_(num)
| < |
uint_ uint_(num) bin bin(num) oct oct(num) hex hex(num)
| < |
ulong_ ulong_(num)
| < |
ulong_long ulong_long(num)
| < |
uint_parser< T, Radix, MinDigits, MaxDigits >() uint_parser< T, Radix, MinDigits, MaxDigits >()(num)
| < |
O(N), где N - число разрезаемых цифр.
T
Для типа числового основания<T
>нижеследующие требования к выражению должны быть действительными:
выражение |
Семантика |
---|---|
< | Конструкция по умолчанию. |
< | Построй из< |
< | Добавление. |
< | Умножение. |
< | < |
< | Максимальные цифры для< |
std::numeric_limits<T>::digits10 | Максимальные показатели для< |
< | Максимальное значение< |
< | Минимальное значение< |
![]() | Note |
---|---|
Испытательный ремень для примера (примеров) ниже представлен в разделеОсновные примеры. |
Некоторые используют декларации:
using boost::phoenix::val; using boost::spirit::qi::lit; using boost::spirit::qi::uint_; using boost::spirit::qi::uint_parser;
Основные неподписанные целые числа:
// unsigned int test_parser("12345", uint_); test_parser("12345", uint_(12345)); test_parser("12345", uint_(val(12345))); // literals test_parser("12345", lit(12345)); test_parser("12345", lit(val(12345)));
Тысячи разделенных парсеров:
uint_parser<unsigned, 10, 1, 3> uint3_p; // 1..3 digits uint_parser<unsigned, 10, 3, 3> uint3_3_p; // exactly 3 digits test_parser("12,345,678", uint3_p >> *(',' >> uint3_3_p));
Статья Unsigned Integer Parsers (uint_, etc.) раздела Spirit 2.5.2 Numeric Parsers может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Numeric Parsers ::
реклама |