std::numeric_limits<T>::has_denorm_loss
提供: cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
static const bool has_denorm_loss; |
(C++11未満) | |
static constexpr bool has_denorm_loss; |
(C++11以上) | |
std::numeric_limits<T>::has_denorm_loss の値は、非正規化数を作成したときの精度の損失を不正確な結果としてではなく非正規化損失 (ノートを参照) として検出するすべての浮動小数点型 T に対して true になります。
標準の特殊化
T
|
std::numeric_limits<T>::has_denorm_loss の値
|
| /* 非特殊化 */ | false
|
bool
|
false
|
char
|
false
|
signed char
|
false
|
unsigned char
|
false
|
wchar_t
|
false
|
char8_t
|
false
|
char16_t
|
false
|
char32_t
|
false
|
short
|
false
|
unsigned short
|
false
|
int
|
false
|
unsigned int
|
false
|
long
|
false
|
unsigned long
|
false
|
long long
|
false
|
unsigned long long
|
false
|
float
|
処理系定義 |
double
|
処理系定義 |
long double
|
処理系定義 |
ノート
標準準拠の IEEE 754 浮動小数点の非正規化数の実装は、そのような数値の生成が発生した場合、それに紐付く正確さの損失を検出することが要求されます。 これは2つの異なる方法のいずれかで行われます。
1) 非正規化損失: 生成された結果がもし指数の範囲が無制限であったならば計算されたであろう結果と異なる。
2) 不正確な結果: 生成された結果がもし指数の範囲と精度が無制限であったならば計算されたであろう結果と異なる。
非正規化損失メカニズムの実装は存在せず (正確さの損失は丸めの後に不正確な結果として検出されます)、このオプションは IEEE 754 標準の2008年の改定で削除されました。
libstdc++、 libc++、 libCstd および stlport4 はすべての浮動小数点型に対してこの定数を false として定義しています。 Microsoft Visual Studio はすべての浮動小数点型に対してこの定数を true として定義しています。
あらゆる浮動小数点の計算と同様に、正確さの損失は FE_INEXACT を発生させる場合があります。
例
| This section is incomplete Reason: no example |
関連項目
[静的] |
丸めの前に小ささを検出する浮動小数点型を識別します (パブリック静的メンバ定数) |
[静的] |
浮動小数点型によって使用される非正規化形式を識別します (パブリック静的メンバ定数) |