std::numeric_limits<T>:: has_denorm_loss
|
static
const
bool
has_denorm_loss
;
|
(jusqu'à C++11) | |
|
static
constexpr
bool
has_denorm_loss
;
|
(depuis C++11)
(obsolète en C++23) |
|
La valeur de
std::
numeric_limits
<
T
>
::
has_denorm_loss
est
true
pour tous les types à virgule flottante
T
qui détectent la perte de précision lors de la création d'un nombre sous-normal comme une perte de dénormalisation plutôt que comme un résultat inexact (voir ci-dessous).
Table des matières |
Spécialisations standards
T
|
valeur de std:: numeric_limits < T > :: has_denorm_loss |
| /* non-spécialisé */ | false |
| bool | false |
| char | false |
| signed char | false |
| unsigned char | false |
| wchar_t | false |
| char8_t (depuis C++20) | false |
| char16_t (depuis C++11) | false |
| char32_t (depuis C++11) | false |
| short | false |
| unsigned short | false |
| int | false |
| unsigned int | false |
| long | false |
| unsigned long | false |
| long long (depuis C++11) | false |
| unsigned long long (depuis C++11) | false |
| float | défini par l'implémentation |
| double | défini par l'implémentation |
| long double | défini par l'implémentation |
Notes
Les implémentations conformes aux normes IEEE 754 pour les nombres flottants sous-normaux doivent détecter la perte de précision associée à la création de tels nombres, si elle se produit, et peuvent le faire de l'une des deux manières distinctes :
- Perte de dénormalisation : le résultat fourni diffère de ce qui aurait été calculé si la plage d'exposants était illimitée.
- Résultat inexact : le résultat fourni diffère de ce qui aurait été calculé si la plage d'exposants et la précision étaient illimitées.
Aucune implémentation du mécanisme de perte par dénormalisation n'existe (la perte de précision est détectée après l'arrondi, comme résultat inexact), et cette option a été supprimée dans la révision 2008 de la norme IEEE Std 754.
libstdc++, libc++, libCstd et stlport4 définissent cette constante comme false pour tous les types à virgule flottante. Microsoft Visual Studio la définit comme true pour tous les types à virgule flottante.
Comme pour tout calcul en virgule flottante, une perte de précision peut déclencher FE_INEXACT .
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
[static]
|
identifie les types à virgule flottante qui détectent la dénormalisation avant l'arrondi
(constante de membre statique publique) |
|
[static]
|
identifie le style de dénormalisation utilisé par le type à virgule flottante
(constante de membre statique publique) |