Программирование >>  Операторы преобразования типа 

1 ... 16 17 18 [ 19 ] 20 21 22 ... 239


public;

Да, для int существует специализация числовых пределов static const bool isspedallzed - true;

static T minO throwO { return -2147483648;

static T maxO throwO { return 2147483647:

static const int digits - 31;

Ha этот раз переменной is speciali2ed присвоено значение tnje, а остальные члены класса используют числовые пределы конкретного типа (int в приведенном примере).

Обобщенный шаблон numericjimits и его стандартные специализации содержатся в заголовочном файле <llmlts>. Заголовок включает специализации для всех базовых типов, представляющих числовые значения: bool, char, signed char, unsigned char, wchar t, short, unsigned short, Int, unsigned Int, long, unsigned long, float, double и long double. Кроме того, аналогичные специализации легко определяются для пользовательских числовых типов.

В табл. 4.2 перечислены все члены класса numerlcjimltso с краткими описаниями, В правом столбце приводятся соответствующие константы С, определяемые в заголовочных файлах <cllmlts>, <llmlts.h>, <cfloat> и <float.h>.

Таблица 4.2. Члены класса numericjimltso

Член класса Описание Константы С

ls spedalized Тип поддерживает специализацию числовых

пределов

ls slgned Знаковый тип

isjnteger Целочисленный тип

ts.exact Вычисления производятся без ошибок округления

(true для всех целочисленных типов)

is bounded Тип имеет конечный набор допустимых значений

(true для всех встроенных типов)

is modulo Поддерживается сложение по модулю

(суммирование двух попожительных чисел может привести к меньшему результату)

Isjec559 Тип соответствует стандартам 1ЕС 559 и IEEE 754



Член класса

Описание

Константы С

min()

max() digits

digitslO radix

min exponent

niax exponent

min exponentlO

maxexponentlO

epsiionO

round style round error()

hasjnfinity

InfinityO

has quiet NaN

quieLNaN has signaiing NaN slgnaiing NaN() has denorm

Минимальное конечное значение (минимальное нормализованное значение для вещественных типов с денормализацией; имеет смысл, если is bounded}!is j5igned)

Максимальное конечное значение (имеет смысл, если is bounded)

Символьные, целочисленные типы - количество незнаковых битов; вещественные типы - количество цифр основания radix (см. далее) в мантиссе

Количество десятичных цифр (имеет смысл, если is bounded)

Целочисленные типы - основание системы счисления, использованной для представления (почти всегда 2); вещественные типы - основание системы счисления, использованной для представления экспоненты

Минимальный отрицательный целый показатель степени с основанием radix

Максимальный положительный целый показатель степени с основанием radix

Минимальный отрицательный целый показатель степени с основанием 10

Максимальный положительный целый показатель степени с основанием 10

Разность между 1 и минимальной величиной, большей 1

Стиль округления (см. с. 77)

Оценка максимальной ошибки округления

(в соответствии со стандартом ISO/IEC 10967-1)

Признак наличия представления для положительной бесконечности

Представление положительной бесконечности (если оно есть)

Признак наличия пассивного представления NaN ( не число )

Пассивное представление NaN

Признак наличия сигнального представления NaN

Сигнальное представление NaN

Возможность представления денормализованных значений (с переменным количеством битов экспоненты - см. с. 77)

INT MIN, FLT MIN, CHAR MIN, ...

INT MAX, FLT MAX, ...

CHAR BIT

FLT DIG, ...

FLT RADIX

FLT MIN EXP, ... FLT MAX EXP,... FLT MIN 10 EXP, FLT MAX 10 EXP, FLT EPSILON,...

продолжение



Таблица 4.2 (продолжение)

Член класса Описание Константы С

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

denorni mtn() Минимальное положительное денормализованное

значение

traps В типе реализован механизм ловушек

tinyness.before Предельно малые значения обнаруживаются перед округлением

Ниже приведен один из вариантов полной специализации числовых пределов для зависимого от платформы типа float. Кроме того, в нем приведены точные сигнатуры членов.

namespace std {

templateo class numericJimlts<float> { publ1 с:

Да. для float существует специализация числовых пределов static const bool is specialized = true;

inline static float min() throwO { return 1.17549435E-38F;

inline static float maxO throwO { return 3.402e2347E+38F;

static const int digits = 24; static const 1nt digitslO = 6:

static const bool is slgned = true;

static const bool is 1nteger = false:

static const bool is exact = false;

static const bool is bounded -= true;

static const bool is modulo = false;

static const bool isjec559 = true;

static const int radix = 2;

inline static float epsilonO throwO { return 1.19209290E-07F:

static const float round style round style

= round to nearest; inline static float round error() throwO {



1 ... 16 17 18 [ 19 ] 20 21 22 ... 239

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика