Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Numbers

Boost , Chapter 1. The Variadic Macro Data Library 1.9 , Specific macros for working with data types

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Номер в VMD является предварительной обработкой pp-число, ограниченное числом Boost PP. Это интегральное буквальное число от 0 до 256. Форма числа не содержит ведущих нулей. Приемлемыми в качестве цифр являются:

0
127
33
254
18

но не:

033
06
009
00
Problem testing any number

Как видно из объяснения идентификатора, число является лишь небольшим подмножеством всех возможных идентификаторов, для которых VMD внутренне предоставляет макросы регистрации для своего использования и макросы предварительного обнаружения для своего использования. Следовательно, конкретное ограничение на вход для тестирования точно такое же, как и для идентификаторов.

Ограничение заключается в том, что начальный входной символ, игнорируя любое белое пространство, пропущенное в качестве входа для тестирования, должен быть либо:

  • символ идентификатора, т.е. буквенно-цифровой или подчеркивающий
  • левая скобка кортежа

и если первый символ не является левой скобкой кортежа, остальные символы должны быть буквенно-цифровыми или подчеркиванием, пока не произойдет пространственный символ или конец ввода.

Если это не так, поведение не определено, и, скорее всего, произойдет ошибка предварительной обработки.

Testing for a number macro

Макрос, используемый для тестирования любого числа в VMD, называется BOOST_VMD_IS_NUMBER. Макро принимает один параметр, вход для тестирования против.

Макро возвращает 1, если параметр является числом Boost PP, в противном случае макрос возвращает 0.

Библиотека Boost PP имеет большой функционал для работы с числами, поэтому, как только вы используете VMD для анализа / тестирования числа, вы можете использовать Boost PP для работы с этим числом различными способами. VMD не пытается дублировать функциональность чисел в библиотеке Boost PP.

Любой номер также является идентификатором, который был зарегистрирован и предварительно обнаружен, поэтому вы также можете использовать функцию VMD, которая работает с идентификаторами, для работы с номером в качестве идентификатора, если хотите.

Example

Рассмотрим пример использования BOOST_VMD_IS_NUMBER.

#include <boost/vmd/is_number.hpp>
BOOST_VMD_IS_NUMBER(input)
returns:
if input = 0, 1
if input = 44, 1
if input = SQUARE, 0
if input = 44 DATA, 0 since there are tokens after the number
if input = 044, 0 since no leading zeros are allowed for our Boost PP numbers
if input = 256, 1
if input = 257, 0 since it falls outside the Boost PP number range of 0-256
if input = %44, does not meet the constraint therefore undefined behavior
if input = 44.0, does not meet the constraint therefore undefined behavior
if input = ( 44 ), 0 since the macro begins with a tuple and this can be tested for
Usage

Для использования макроса BOOST_VMD_IS_NUMBER используется общий заголовок:

#include <boost/vmd/vmd.hpp>

или включить конкретный заголовок:

#include <boost/vmd/is_number.hpp>

PrevUpHomeNext

Статья Numbers раздела Chapter 1. The Variadic Macro Data Library 1.9 Specific macros for working with data types может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Specific macros for working with data types ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:36:25/0.0068490505218506/0