![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Unsigned Integer Number Generators (uint_, etc.)Boost , Spirit 2.5.2 , Numeric Generators
|
Имя |
---|
|
|
|
boost::spirit::hex // alias:
boost::spirit::karma::hex |
|
|
|
|
![]() | Note |
---|---|
Генераторы |
![]() | Note |
---|---|
|
template < typename Num , unsigned Radix> struct uint_generator;
Параметр |
Описание |
По умолчанию |
---|---|---|
| Числовой базовый тип числового генератора. | |
| База радикса. Это может быть любое значение в (инклюзивном) диапазоне от | |
Notation
num
Численное буквальное, любое неподписанное целое значение, или Последний аргумент Num
Num
Тип num
: любой неподписанный целочисленный тип, или в случае Данные аргументы, его значение возврата
Radix
Цифровый литр, указывающий требуемый радикс для преобразования вывода. 2
.36
.
Семантика выражения определяется только там, где она отличается от или не определяется в PrimitiveGenerator
.
Выражение |
Семантика |
---|---|
| Создайте неподписанную буквальную цифру |
ushort_ uint_ ulong_ ulong_long
| Создайте неподписанное целое число, предоставляемое обязательным атрибутом с использованием форматирования по умолчанию (radix - |
ushort_(num) uint_(num) ulong_(num) ulong_long(num)
| Создайте неподписанное целое число, обеспечиваемое непосредственным буквальным значением, которое генератор инициализируется с использованием форматирования по умолчанию (radix - |
bin oct hex
| Создайте неподписанное целое число, обеспечиваемое обязательным атрибутом, используя форматирование по умолчанию и соответствующий радикс ( |
bin(num) oct(num) hex(num)
| Создайте неподписанное целое число, обеспечиваемое непосредственным буквальным значением, генератор инициализируется с использованием форматирования по умолчанию и соответствующего радикса ( |
Все генераторы, перечисленные в таблице выше (за исключением lit(num)
) являются предопределенными специализациями uint_generator<Num, Radix>
основной неподписанный тип генератора целых чисел описан ниже. Можно напрямую использовать этот тип для создания неподписанных целых генераторов с использованием широкого спектра вариантов форматирования.
Выражение |
Семантика |
---|---|
uint_generator< Num, Radix >()
| Создайте неподписанное целое число типа |
uint_generator< Num, Radix >()(num)
| Создайте неподписанное целое число типа |
uint_generator<Num, Radix>
.
.
Если boost::is_integral<Num>:: value
является True
тип Num
должен был определить:
<
, <=
, ==
, >!=
, >
, и >=
+
, -
, /
, *
, и %
Если boost::is_integral<Num>:: value
является false
ТипNum
<
, <=
, ==
, >!=
, >
, и >=
+
, -
, /
, *
, и %
std::fmod
, std::pow
, std::lround
, st><>>>>>> Они должны быть определены таким образом, чтобы их можно было найти с помощью аргументированного зависимого поиска (ADL).
Выражение |
Attribute |
---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |
bin oct hex
| |
bin(num) oct(num) hex(num)
| |
uint_generator< Num, Radix >()
| |
uint_generator< Num, Radix >()(num)
| |
![]() | Note |
---|---|
В дополнение к их обычному атрибуту типа |
O(N), где
N
- это количество цифр, необходимых для представления сгенерированного целого числа
![]() | Note |
---|---|
Испытательный узел для примера (примеров) ниже представлен в разделе Basics examples. |
Некоторые из них включают:
#include <boost/spirit/include/karma.hpp> #include <boost/spirit/include/support_utree.hpp> #include <boost/spirit/include/phoenix_core.hpp> #include <boost/spirit/include/phoenix_operator.hpp> #include <boost/fusion/include/std_pair.hpp> #include <iostream> #include <string>
Некоторые используют заявления:
using boost::spirit::karma::uint_; using boost::spirit::karma::lit;
Основное использование генератора uint
:
test_generator("2", lit(2U)); test_generator("2", uint_(2)); test_generator_attr("2", uint_(2), 2); test_generator_attr("", uint_(2), 3); // fails (as 2 != 3)! test_generator_attr("2", uint_, 2);
Статья Unsigned Integer Number Generators (uint_, etc.) раздела Spirit 2.5.2 Numeric Generators может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Numeric Generators ::
реклама |