Пространства имён
Варианты
Действия

std::numeric_limits::is_modulo

Материал из cppreference.com

 
 
 
Поддержка типов
Основные типы
Оригинал:
Basic types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Основные типы
Исправлены типы целых ширину (C++11)
Числовые пределы
Оригинал:
Numeric limits
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
С числовым ограничивает интерфейс
Время тип информации
Оригинал:
Runtime type information
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Тип черты
Оригинал:
Type traits
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Первичные категории типа
Оригинал:
Primary type categories
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Тип свойства
Оригинал:
Type properties
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Поддерживаемые операции
Оригинал:
Supported operations
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Отношения собственности и запросов
Оригинал:
Relationships and property queries
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Тип модификаций
Оригинал:
Type modifications
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Тип преобразования
Оригинал:
Type transformations
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Характеристики типов констант
Оригинал:
Type trait constants
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
std::numeric_limits
Статические константы
Оригинал:
Static constants
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
numeric_limits::is_modulo
Статические функции-члены
Оригинал:
Static member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Помощник типов
Оригинал:
Helper types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
static const bool is_modulo
(до C++11)
static constexpr bool is_modulo
(начиная с C++11)

The value of std::numeric_limits<T>::is_modulo is true for all arithmetic types T that handle overflows with modulo arithmetic, that is, if the result of addition, subtraction, multiplication, or division of this type would fall outside the range [min(), max()], the value returned by such operation differs from the expected value by a multiple of max()-min()+1.

[править] Стандартный специализации

T
Значение std::numeric_limits<T>::is_modulo
Оригинал:
value of std::numeric_limits<T>::is_modulo
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
/* non-specialized */ false
bool false
char true
signed char true
unsigned char true
wchar_t true
char16_t true
char32_t true
short true
unsigned short true
int true
unsigned int true
long true
unsigned long true
long long true
unsigned long long true
float false
double false
long double false

[править] Пример

Demonstrates the behavior of modulo types

#include <iostream>
#include <type_traits>
#include <limits>
 
template<class T>
typename std::enable_if<std::numeric_limits<T>::is_modulo>::type
    check_overflow()
{
    std::cout << "\nmax value is " << std::numeric_limits<T>::max() << '\n'
              << "min value is " << std::numeric_limits<T>::min() << '\n'
              << "max value + 1 is " << std::numeric_limits<T>::max()+1 << '\n';
}
 
int main()
{
    check_overflow<int>();
    check_overflow<unsigned long>();
    // check_overflow<float>(); // compile-time error, not a modulo type
}

Вывод:

max value is 2147483647
min value is -2147483648
max value + 1 is -2147483648
 
max value is 18446744073709551615
min value is 0
max value + 1 is 0

[править] См. также

[static]
определяет целых типов
Оригинал:
identifies integer types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public static константа-член) [править]
[static]
определяет IEC 559/IEEE 754 типов с плавающей запятой
Оригинал:
identifies the IEC 559/IEEE 754 floating-point types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public static константа-член) [править]
[static]
определяет точные типы
Оригинал:
identifies exact types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public static константа-член) [править]