Namensräume
Varianten
Aktionen

Fixed-Breite Gleitkommatypen (seit C++23)

Von cppreference.com
< cpp‎ | types
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
Typunterstützung
Basistypen
Ganzzahltypen mit fester Breite (C++11)
Fixed-Breite Gleitkommatypen (C++23)
(C++11)    
(C++17)
Numerische Grenzwerte
C-Schnittstelle für numerische Grenzwerte
Laufzeit-Typinformationen
 

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

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

Inhalt

[bearbeiten] Anmerkungen

Der Typ std::bfloat16_t ist bekannt als Brain Floating-Point.

Im Gegensatz zu den Fixed-Breite Ganzzahltypen, die Aliase für Standard-Ganzzahltypen sein können, müssen die Fixed-Breite Gleitkommatypen Aliase für erweiterte Gleitkommatypen sein (nicht float / double / long double), und sind daher keine Drop-in-Ersetzungen für Standard-Gleitkommatypen.

[bearbeiten] Beispiel

#include <stdfloat>
 
#if __STDCPP_FLOAT64_T__ != 1
    #error "64-bit float type required"
#endif
 
int main()
{
    std::float64_t f = 0.1f64;
}

[bearbeiten] Referenzen

  • C++23 Standard (ISO/IEC 14882:2024)
  • 6.8.3 Optionale erweiterte Gleitkommatypen [basic.extended.fp]

[bearbeiten] Siehe auch