## 21.3 numeric_limit メンバー

`numeric_limits` 構造体のフィールドの多くは浮動小数点値にのみ有効なため、メンバーの記述を共通フィールドと浮動小数点固有のフィールドに分離すると便利です。

### 21.3.1 すべての型に共通のメンバー

表 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 つの値を加えた結果の値をラップアラウンドできる場合、すなわちいずれかの引数より小さくできる場合、型はモジュロです。基本符号なし整数型はすべてモジュロです。

### 21.3.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` と同じです。

`float` `double` および `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` のいずれかです。

Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月