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

Standard Integer Types

Boost , Boost.Config , Boost.Config

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

Заголовок обеспечивает полезную для написания портативного кода функцию typedef, требующую определенной ширины целого числа. Все типдефы в пространстве имен.

Спецификации для этих типов основаны на стандарте ISO/IEC 9899:1999 C Language header . 64-разрядные типы, требуемые стандартом C, не требуются в заголовке бустера и могут не поставляться для всех платформ / компиляторов, поскольку длинное еще не включено в стандарт C++.

См. cstdint_test.cpp для тестовой программы.

Организация Роста. Целые заголовки и классы предназначены для использования типов из стандарта 1999 C, не вызывая неопределенного поведения с точки зрения стандарта 1998 C++. Заголовок делает стандартные целочисленные типы безопасными в пространстве имен boost без размещения имен в пространстве имен std. Цель состоит в том, чтобы дополнить, а не конкурировать со стандартной библиотекой C++. Если какой-то будущий стандарт C++ включает и , то продолжит функционировать, но станет избыточным и может быть безопасно обесценен.

Поскольку это заголовки ускорения, их имена соответствуют соглашениям об именах заголовков ускорения, а не C++. Стандартные библиотечные соглашения об именах.

В качестве артефакта реализации некоторые C макро-имена могут быть видны пользователям Не используйте эти макросы; они не являются частью какого-либо интерфейса. Используйте boost::integer_traits<> или std::numeric_limits<>.

В качестве другого артефакта реализации некоторые имена C typedef могут быть видны в глобальном пространстве имен пользователям Не используйте эти имена, они не являются частью интерфейса Boost. Вместо этого используйте соответствующие имена в пространстве имен boost.

Typedef int#_t, с # замененным на ширину, обозначает подписанный целочисленный тип точно # битов; например, int8_t обозначает 8-битный подписанный целочисленный тип. Аналогично, typedef uint#_t обозначает неподписанный целочисленный тип именно битов #.

Эти типы являются факультативными. Однако, если платформа поддерживает целые типы с шириной 8, 16, 32, 64 или любую их комбинацию, тогда предоставляет соответствующие типдефы.

Отсутствие int64_t и uint64_t указывается макросом. BOOST_NO_INT64_T.

Typedef int_least#_t, с #заменой на ширину, обозначает подписанный целочисленный тип с шириной по меньшей мере битов #, так что ни один подписанный целочисленный тип с меньшим размером не имеет по меньшей мере указанной ширины. Таким образом, int_least32_t обозначает наименьший подписанный целочисленный тип шириной не менее 32 бит. Аналогично, имя typedef uint_least#_t обозначает неподписанный целочисленный тип с шириной по меньшей мере битов #, так что ни один неподписанный целочисленный тип с меньшим размером не имеет по меньшей мере указанной ширины.

Для всех платформ предусмотрены следующие типы целых чисел минимальной ширины:

  • int_east8_t
  • int_east16_t
  • int_east32_t
  • uint_east8_t
  • uint_east16_t
  • uint_east32_t

Следующие типы доступны только после включения , макрос BOOST_NO_INT64_T не определяется:

  • int_east64_t
  • uint_east64_t

Все остальные целочисленные типы минимальной ширины являются необязательными.

Typedef int_fast#_t, с #заменой на ширину, обозначает самый быстрый подписанный целочисленный тип с шириной не менее # битов. Аналогично, имя typedef uint_fast#_t обозначает самый быстрый неподписанный целочисленный тип с шириной по меньшей мере битов #.

Нет никакой гарантии, что эти типы являются самыми быстрыми для всех целей. В любом случае, однако, они удовлетворяют требованиям подписи и ширины.

Для всех платформ предусмотрены следующие самые быстрые типы целочисленных чисел минимальной ширины:

  • int_fast8_t
  • int_fast16_t
  • int_fast32_t
  • uint_fast8_t
  • uint_fast16_t
  • uint_fast32_t

Следующие типы доступны только после включения , макрос BOOST_NO_INT64_T не определяется:

  • int_fast64_t
  • uint_fast64_t

Все остальные самые быстрые целочисленные типы минимальной ширины являются необязательными.

Typedef intmax_t обозначает подписанный целочисленный тип, способный представлять любое значение любого подписанного целочисленного типа.

Typedef uintmax_t обозначает неподписанный целочисленный тип, способный представлять любое значение любого неподписанного целочисленного типа.

Эти типы предусмотрены для всех платформ.

После включения этого заголовка всегда определяются следующие макросы, которые позволяют объявить целые константы по меньшей мере указанной ширины: INT8_C, UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.

Макросы INT64_C и UINT64_C также определены, если макрос BOOST_NO_INT64_T не определен.

C99 macro __STDC_CONSTANT_MACROS также определяется как артефакт реализации.

Например:

#include <boost/cstdint.hpp>
// Here the constant 0x1FFFFFFFF has the correct suffix applied:
static const boost::uint64_t c = INT64_C(0x1FFFFFFFF);

PrevUpHomeNext

Статья Standard Integer Types раздела Boost.Config Boost.Config может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Boost.Config ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:48:31/0.0064511299133301/1