Namespaces
Variants

Gleitkommatypen mit fester Breite (seit C++23)

Von de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Feature-Test-Makros der Bibliothek (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Dreiseitiger Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Dienstprogramme
Relationale Operatoren (veraltet in C++20)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Tausch- und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabularstypen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 

Wenn die Implementierung einen der folgenden ISO 60559-Typen als erweiterten Gleitkommatyp unterstützt, dann:

  • wird das entsprechende Makro als 1 definiert, um die Unterstützung anzuzeigen,
  • das entsprechende Gleitkommaliteral-Suffix ist verfügbar, und
  • der entsprechende Typalias-Name wird bereitgestellt:
Typen
Definiert in Header
<stdfloat>
Literal-Suffix Vordefiniertes Makro C-Sprachtyp Typeigenschaften
Speicherbits Präzisionsbits Exponentenbits max 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