Wenn die Implementierung einen der folgenden
ISO 60559
Typen als erweiterten Gleitkommatyp unterstützt, dann:
-
das entsprechende Makro ist als
1
definiert, um Unterstützung anzuzeigen,
-
das entsprechende
Gleitkomma-Literal-Suffix
ist verfügbar, und
-
der entsprechende Typalias-Name wird bereitgestellt:
Typen
Definiert im Header
<stdfloat>
|
Literalsuffix
|
Vordefiniertes Makro
|
C-Sprachtyp
|
Typeigenschaften
|
|
Bits Speicher
|
Bits Präzision
|
Bits Exponent
|
Maximaler Exponent
|
|
float16_t
|
f16
oder
F16
|
__STDCPP_FLOAT16_T__
|
_Float16
|
16
|
11
|
5
|
15
|
|
float32_t
|
f32
oder
F32
|
__STDCPP_FLOAT32_T__
|
_Float32
|
32
|
24
|
8
|
127
|
|
float64_t
|
f64
oder
F64
|
__STDCPP_FLOAT64_T__
|
_Float64
|
64
|
53
|
11
|
1023
|
|
float128_t
|
f128
oder
F128
|
__STDCPP_FLOAT128_T__
|
_Float128
|
128
|
113
|
15
|
16383
|
|
bfloat16_t
|
bf16
oder
BF16
|
__STDCPP_BFLOAT16_T__
|
(N/A)
|
16
|
8
|
8
|
127
|
Hinweise
Der Typ
std::bfloat16_t
ist bekannt als
Brain Floating-Point
.
Im Gegensatz zu den
Festbreiten-Ganzzahltypen
, die Aliase für
Standard-Ganzzahltypen
sein können, müssen die Festbreiten-Gleitkommatypen Aliase für erweiterte Gleitkommatypen sein (nicht
float
/
double
/
long
double
), sind daher keine direkten Ersatztypen für Standard-Gleitkommatypen.
Beispiel
#include <stdfloat>
#if __STDCPP_FLOAT64_T__ != 1
#error "64-bit float type required"
#endif
int main()
{
std::float64_t f = 0.1f64;
}
Referenzen
-
C++23-Standard (ISO/IEC 14882:2024):
-
-
6.8.3 Optionale erweiterte Gleitkommatypen [basic.extended.fp]
Siehe auch