|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Basic types | |||||||||||||||||||||
| Fixed width integer types(C++11) | |||||||||||||||||||||
| Fixed width floating-point types(C++23) | |||||||||||||||||||||
| |||||||||||||||||||||
| Numeric limits | |||||||||||||||||||||
| C numeric limits interface | |||||||||||||||||||||
| Runtime type information | |||||||||||||||||||||
| |||||||||||||||||||||
| Static constants | ||||
numeric_limits::has_denorm_loss | ||||
(C++11) | ||||
| Static member functions | ||||
(C++11) | ||||
| Helper types | ||||
staticconstbool has_denorm_loss; | (until C++11) | |
staticconstexprbool has_denorm_loss; | (since C++11) (deprecated in C++23) | |
The value ofstd::numeric_limits<T>::has_denorm_loss istrue for all floating-point typesT that detect loss of precision when creating a subnormal number as denormalization loss rather than as inexact result (see below).
Contents |
T | value ofstd::numeric_limits<T>::has_denorm_loss |
| /* non-specialized */ | false |
| bool | false |
| char | false |
| signedchar | false |
| unsignedchar | false |
| wchar_t | false |
| char8_t(since C++20) | false |
| char16_t(since C++11) | false |
| char32_t(since C++11) | false |
| short | false |
| unsignedshort | false |
| int | false |
| unsignedint | false |
| long | false |
| unsignedlong | false |
| longlong(since C++11) | false |
| unsignedlonglong(since C++11) | false |
| float | implementation-defined |
| double | implementation-defined |
| longdouble | implementation-defined |
Standard-compliant IEEE 754 floating-point implementations of subnormal numbers are required to detect the loss of accuracy associated with the creation of such number, if it occurs, and may do so in one of the two distinct ways:
No implementation of denormalization loss mechanism exists (accuracy loss is detected after rounding, as inexact result), and this option was removed in the 2008 revision of IEEE Std 754.
libstdc++, libc++, libCstd, and stlport4 define this constant asfalse for all floating-point types. Microsoft Visual Studio defines it astrue for all floating-point types.
As with any floating-point computations, accuracy loss may raiseFE_INEXACT.
| This section is incomplete Reason: no example |
[static] | identifies floating-point types that detect tinyness before rounding (public static member constant)[edit] |
[static] | identifies the denormalization style used by the floating-point type (public static member constant)[edit] |