Namespaces
Variants

Fixed width floating-point types (since C++23)

From cppreference.net
Utilities library

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

Inhaltsverzeichnis

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