Библиотека BOOST C++: целочисленные типы

 

Хидер / доментация содержание зачем использовать
<boost/integer_fwd.hpp> Предварительные (forward) объявления классов и шаблонов когда нужны только имена классов
<boost/cstdint.hpp>

документация
Определения типов (typedef'ы) на основе хидера из стандарта 1999 C <stdint.h>, обернутого для включения в пространство имен boost. Текущая реализация может включать заголовочный файл <stdint.h>, если таковой есть для используемого компилятора. объявляет через typedef стандартные целочисленные типы, такие как int32_t или uint_least16_t. Следует включать перед <stdint.h> для достижения большей портабельности (платформо-независимости). Далее, все имена включены в пространство имен boost.
<boost/integer_traits.hpp>

документация
Шаблонные классы boost::integer_traits, наследующие от std::numeric_limits.  Добавляют члены const_min и const_max. Для получения характеристик известного целочисленного типа.
<boost/integer.hpp>

документация
Шаблоны для выбора целочисленного типа на основе заданных свойств, таких как максимальное значение или число битов. Для выбора типа целого числа, когда необходимо обеспечить возможность представления заданного числа или определенного числа битов. Полезно для обобщенного программирования.
<boost/integer/integer_mask.hpp>

документация
Шаблоны для выбора маски целочисленного типа, одиночной или наименьшей группы на основе заданного количества битов. Используется для выбора маски, когда поциция(и) битов определяются константой времени компиляции. Применимо в обобщенном программировании.
<boost/integer/static_log2.hpp>

документация
Шаблоны для нахождения наибольшей степени двойки в числе (другими словами, для вычисления логарифма по основанию 2). Используется при нахождении числа битов для представления заданной максимальной величины. Применимо в обобщенном программиовании.
<boost/integer/static_min_max.hpp>

документация
Шаблоны для нахождения экстремумов (максимума и минимума) двух чисел. Используется для определения границ значения при заданных максимальном и минимальном значении. Полезно в обобщенном программировании.

Основы

Организация заголовочных файлов библиотеки Boost.Integer разработана таким образом, чтобы использовать типы, объявленные в <stdint.h> из стандарта 1999 C без путаницы, возникшей в стандарте 1998 C++. Заголовочный файл <boost/cstdint.hpp> позволяет безопасно использовать целочисленные типы в пространстве имен boost, не загрязняя пространство имен std. Как обычно, акцент сделан на дополнении возможностей стандартной библиотеки C++. Когда какой-либо будущий стандарт C++ будет включать <stdint.h> и <cstdint>, тогда <boost/cstdint.hpp> сохранит работоспособность, но станет избыточным и может быть спокойно исключен.

Так как эти заголовочные файлы принадлежат библиотеке BOOST, то их имена следуют соглашениям, принятым в BOOST C++, а не для стандартной библиотеки C++.

Caveat emptor

Латинское выражение означает "пусть приобретатель будет осторожен"

В качестве артефакта реализации некоторые макросы, определенные в <limits.h>, могут быть  видимы при включении хидера <boost/cstdint.hpp>. Эти макросы не следует использовать: они не являются частью определений библиотеки Boost. Вместо них лучше использовать типы boost::integer_traits<> или std::numeric_limits<>.

Как другой артефакт реализации можно отметить, что некоторые typedef'ы из заголовочного файла <stdint.h> могут быть видимы в глобальном пространстве имен при включении файла <boost/cstdint.hpp>. Эти имена типов не следует использовать, так как они не являются частью интерфейса библиотеки Boost. Вместо это лучше использовать соответствующие имена в пространстве имен boost.

Последняя правка: 10.05.2005

библиотека BOOST C++ http://www.boost.org
перевод Elijah Koziev www.solarix.ru

  © Mental Computing 2010