numeric_limits 構造体のフィールドの多くは浮動小数点値にのみ有効なため、メンバーの記述を共通フィールドと浮動小数点固有のフィールドに分離すると便利です。
表 21 に、numeric_limits 静的メンバーデータフィールドおよび関数から入手可能な情報を要約します。
表 21 -- numeric_limits
から入手可能な情報
型 | 名前 | 意味 |
bool |
is_specialized |
特殊化が存在すれば真、その他の場合は偽 |
T |
min() |
最小有限値 |
T |
max() |
最大有限値 |
int |
radix |
表現の基数 |
int |
digits |
変更せずに表示可能な radix 桁数 |
int |
digits10 |
変更せずに表示可能な 10 進数の基数 |
bool |
is_signed |
型が符号付きならば真 |
bool |
is_integer |
型が整数ならば真 |
bool |
is_exact |
表現が正確ならば真 |
bool |
is_bounded |
表現が有限ならば真 |
bool |
is_modulo |
型がモジュロならば真 |
bool |
traps |
型にトラップが実装されていれば真 |
radix とは、内部の表現に使用される基数のことです。たとえば、大部分のマシンは整数データ値に 2 の基数を使用していますが、異なる基数を使用する BCD のような表現をサポートするマシンもあります。したがって digits フィールドは、値が保持できる radix 値の数を表します。整数型の場合、radix 値は表現の符合なしビット数となります。
基本型はすべて結合されます。ただし実装によっては、たとえば、結合されない無限精度の整数パッケージを取り込むこともあります。
2 つの値を加えた結果の値をラップアラウンドできる場合、すなわちいずれかの引数より小さくできる場合、型はモジュロです。基本符号なし整数型はすべてモジュロです。
表 22 に挙げたメンバーは、浮動小数点値に固有のメンバーであるか、浮動小数点データ型以外に関して、先に説明したものとは多少意味の異なる浮動小数点値のメンバーです。
表 22 -- 浮動小数点値に固有のメンバー
型 | 名前 | 意味 |
---|---|---|
T |
min() |
正規化された最小の正値 |
int |
digits |
仮数の桁数 |
int |
radix |
指数表現の基数 (または radix) |
T |
epsilon() |
1 と 1 より大きい最小表現値との差 |
T |
round_error() |
丸め誤差の測定 |
int |
min_exponent |
最小の負指数 |
int |
min_exponent10 |
10 をその値でべき乗した値が範囲内であるような最小値 |
int |
max_exponent |
最大の正指数 |
int |
max_exponent10 |
10 をその値でベキ乗した値が範囲内であるような最大値 |
bool |
has_infinity |
型が正の無限表現を持つ場合は真 |
T |
infinity() |
使用可能ならば、無限表現 |
bool |
has_quiet_NaN |
静的 "Not a Number"の表現があれば真 |
T |
quiet_NaN() |
使用可能ならば、静的 NaN の表現 |
bool |
has_signaling_NaN |
シグナリング NaN の表現があれば真 |
T |
signaling_NaN() |
使用可能ならば、シグナリング NaN の表現 |
bool |
has_denorm |
表現に正規化解除された値があれば真 |
T |
denorm_min() |
正規化解除された最小の正値 |
bool |
is_iec559 |
表現が IEC 559 規格に準拠していれば真 |
bool |
tinyness_before |
丸めの前に tinyness が検出されれば真 |
round_style |
型の丸め形式 |
float データ型の場合、指数表現の基数を表すフィールド radix の値は、記号定数 FLT_RADIX と同じです。
floatdouble および long double データ型の場合、epsilon の値も FLT_EPSILON、DBL_EPSILON、LDBL_EPSILON として使用することができます。
NaN は、Not a Number のことで、数量に対応しない場合でも表示可能な値を意味します。数値アルゴリズムの多くは、このような値を操作します。
IEC 559 規格は、国際電子技術委員会に公認された規格です。これは IEEE 規格 754 に相当します。
関数 round_style() によって返される値は、round_indeterminate、round_toward_zero、round_to_nearest、round_toward_infinity、round_toward_neg_infinity のいずれかです。