![]() |
![]() ![]() ![]() ![]() |
![]() |
Signed Integer Parsers (int_, etc.)Boost , Spirit 2.5.2 , Numeric Parsers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Имя |
|---|
|
boost::spirit::short_ //
alias: boost::spirit::qi::short_ |
|
|
|
![]() | Note |
|---|---|
|
![]() | Note |
|---|---|
|
template < typename T , unsigned Radix , unsigned MinDigits , int MaxDigits> struct int_parser;
|
Параметр |
Описание |
По умолчанию |
|---|---|---|
| Числовой базовый тип числового парсера. | нет |
| База радикса. Это может быть любое основание от 2..10 и 16 | 10 |
| Минимальное допустимое количество цифр. | 1 |
| Максимальное допустимое количество цифр. Если это -1, то максимальный предел становится безграничным. | -1 |
Notation
nОбъект T, числовой базовый тип.
numБуквальное число, любое подписанное целочисленное значение или Lazy Argument, которое оценивает подписанное целочисленное значение.
Семантика выражения определяется только там, где она отличается от или не определена в PrimitiveParser.
|
Выражение |
Семантика |
|---|---|
short_ int_ long_ long_long
| Парсировать подписанное целое число с использованием радикса по умолчанию (10). |
lit(num) short_(num) int_(num) long_(num) long_long(num)
| Сопоставьте буквальный |
int_parser< T, Radix, MinDigits, MaxDigits >() int_parser< T, Radix, MinDigits, MaxDigits >() [ORIG_END] --> | Radix,
минимум MinDigits
и максимум MaxDigits.
|
int_parser< T, Radix, MinDigits, MaxDigits >()(num) int_parser< T, Radix, MinDigits, MaxDigits >()(num) [ORIG_END] --> | Сопоставьте буквальный |
![]() | Important |
|---|---|
Все цифровые парсеры проверяют условия переполнения на основе типа |
|
Выражение |
Атрибут |
|---|---|
lit(num)
| |
short_ short_(num)
| |
int_ int_(num)
| |
long_ long_(num)
| |
long_long long_long(num) long_long long_long(num) [ORIG_END] --> | |
int_parser< T, Radix, MinDigits, MaxDigits >() int_parser< T, Radix, MinDigits, MaxDigits >()(num)
| |
O(N), где N - число разрезаемых цифр плюс знак.
TДля типа числового основания T требования к выражению должны быть действительными:
|
Выражение |
Семантика |
|---|---|
| По умолчанию. |
| Построение из |
| Добавление. |
| Вычитание. |
| Умножение. |
| |
| Максимальные цифры для |
| Максимальные показатели для |
| Максимальное значение |
| Минимальное значение |
![]() | Note |
|---|---|
Испытательный ремень для примера (примеров) ниже представлен в разделе Основные примеры. |
Некоторые используют декларации:
using boost::phoenix::val; using boost::spirit::qi::lit; using boost::spirit::qi::int_;
Основные подписанные целые числа:
// signed int test_parser("+12345", int_); test_parser("-12345", int_); test_parser("+12345", int_(12345)); test_parser("-12345", int_(-12345)); test_parser("+12345", int_(val(12345))); test_parser("-12345", int_(val(-12345))); // literals test_parser("+12345", lit(12345)); test_parser("-12345", lit(-12345)); test_parser("+12345", lit(val(12345))); test_parser("-12345", lit(val(-12345)));
Статья Signed Integer Parsers (int_, etc.) раздела Spirit 2.5.2 Numeric Parsers может быть полезна для разработчиков на c++ и boost.
:: Главная :: Numeric Parsers ::
реклама |