Ограничения типов std::numeric_limits

Содержит информацию о свойствах арифметических типов (целых или с плавающей точкой) на конкретной платформе, для которой скомпилена библиотека. Это шаблонный класс специализирован для каждого фундаментального арифметического типа, его члены, описывают свойства типа T. Этот шаблон не может быть специализированы для какого либо другого типа данных.

Подробнее: std::numeric_limits

Требует включения заголовка: #include <limits>

Основные арифметические типы

Целые типы:

  • bool
  • char
  • char16_t
  • char32_t
  • wchar_t
  • signed char
  • short int
  • int
  • long int
  • long long int
  • unsigned char
  • unsigned short int
  • unsigned int
  • unsigned long int
  • unsigned long long int

Типы с плавающей точкой

  • float
  • double
  • long double

СОВЕТ: для вычислений использовать только типы int, double и complex, для символов - тип char и для логических значений - тип bool. Остальные арифметические типы мы используем только при крайней необходимости


#include <limits>

numeric_limits<ТИП_ДАННЫХ>::min();
numeric_limits<ТИП_ДАННЫХ>::max();
numeric_limits<ТИП_ДАННЫХ>::lowest();

numeric_limits<ТИП_ДАННЫХ>::is_signed;
numeric_limits<ТИП_ДАННЫХ>::is_integer;
numeric_limits<ТИП_ДАННЫХ>::is_exact; // если тип использует точные представления

В дополнение, заголовочном файле <climits> (limits.h) имеется следующий набор констант

  • CHAR_BIT - Количество битов в типе char
  • SCHAR_MIN - Мин. значение для объекта типа signed char
  • SCHAR_MAX - Макс. значение для объекта типа signed char
  • UCHAR_MAX - Макс. значение для объекта типа unsigned char
  • CHAR_MIN - Мин. значение для объекта типа char
  • CHAR_MAX - Макс. значение для объекта типа char
  • SHRT_MIN - Мин. значение для объекта типа short int
  • SHRT_MAX - Макс. значение для объекта типа short int
  • USHRT_MAX - Макс. значение для объекта типа unsigned short int
  • INT_MIN - Мин. значение для объекта типа int
  • INT_MAX - Макс. значение для объекта типа int
  • UINT_MAX - Макс. значение для объекта типа unsigned int
  • LONG_MIN - Мин. значение для объекта типа long int
  • LONG_MAX - Макс. значение для объекта типа long int
  • ULONG_MAX - Макс. значение для объекта типа unsigned long int
  • LLONG_MIN - Мин. значение для объекта типа long long int
  • LLONG_MAX - Макс. значение для объекта типа long long int
  • ULLONG_MAX - Макс. значение для объекта типа unsigned long long int
  • MB_LEN_MAX - Макс. число байт в многобайтовом символе, для любой локали