Namespaces
Variants

Tipos de punto flotante de ancho fijo (desde C++23)

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades del programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
Funciones de comparación de enteros
(C++20)(C++20)(C++20)    
(C++20)
Operaciones de intercambio y tipo
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Tipos de vocabulario comunes
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
Soporte de tipos
Tipos básicos
Tipos enteros de ancho fijo (C++11)
Tipos de punto flotante de ancho fijo (C++23)
(C++11)    
(C++17)
Límites numéricos
Interfaz de límites numéricos de C
Información de tipo en tiempo de ejecución
 

Si la implementación soporta alguno de los siguientes tipos ISO 60559 como un tipo de punto flotante extendido, entonces:

  • la macro correspondiente se define como 1 para indicar soporte,
  • el sufijo literal de punto flotante correspondiente está disponible, y
  • el nombre del alias de tipo correspondiente se proporciona:
Tipos
Definido en el encabezado
<stdfloat>
Sufijo literal Macro predefinida Tipo de lenguaje C Propiedades del tipo
bits de almacenamiento bits de precisión bits de exponente exponente máximo
float16_t f16 o F16 __STDCPP_FLOAT16_T__ _Float16 16 11 5 15
float32_t f32 o F32 __STDCPP_FLOAT32_T__ _Float32 32 24 8 127
float64_t f64 o F64 __STDCPP_FLOAT64_T__ _Float64 64 53 11 1023
float128_t f128 o F128 __STDCPP_FLOAT128_T__ _Float128 128 113 15 16383
bfloat16_t bf16 o BF16 __STDCPP_BFLOAT16_T__ (N/A) 16 8 8 127

Notas

El tipo std::bfloat16_t se conoce como Brain Floating-Point .

A diferencia de los tipos de enteros de ancho fijo , que pueden ser alias de tipos de enteros estándar , los tipos de punto flotante de ancho fijo deben ser alias de tipos de punto flotante extendidos (no float / double / long double ), por lo tanto no son reemplazos directos para tipos de punto flotante estándar.

Ejemplo

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

Referencias

  • Estándar C++23 (ISO/IEC 14882:2024):
  • 6.8.3 Tipos de punto flotante extendidos opcionales [basic.extended.fp]

Véase también