命名空间
变体
操作

固定宽度浮点类型 (自 C++23 起)

来自 cppreference.com
< cpp‎ | 类型
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库特性测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三路比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
类型支持
基本类型
固定宽度整数类型 (C++11)
固定宽度浮点类型 (C++23)
(C++11)    
(C++17)
数值限制
C 数值限制接口
运行时类型信息
 

如果实现支持以下任何 ISO 60559 类型作为扩展浮点类型,则

  • 相应的宏定义为 1 以指示支持,
  • 相应的 浮点文字 后缀可用,以及
  • 提供相应的类型别名名称
类型名称
定义在头文件中
<stdfloat>
文字后缀 预定义宏 C 语言类型 类型属性
存储位 精度位 指数位 最大指数
std::float16_t f16F16 __STDCPP_FLOAT16_T__ _Float16 16 11 5 15
std::float32_t f32F32 __STDCPP_FLOAT32_T__ _Float32 32 24 8 127
std::float64_t f64F64 __STDCPP_FLOAT64_T__ _Float64 64 53 11 1023
std::float128_t f128F128 __STDCPP_FLOAT128_T__ _Float128 128 113 15 16383
std::bfloat16_t bf16BF16 __STDCPP_BFLOAT16_T__ (N/A) 16 8 8 127

内容

[编辑] 笔记

std::bfloat16_t 类型被称为 Brain Floating-Point

固定宽度整数类型 不同,后者可能是对 标准整数类型 的别名,固定宽度浮点类型必须是对扩展浮点类型的别名(而不是 float / double / long double)。

[编辑] 示例

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

[编辑] 参考文献

  • C++23 标准 (ISO/IEC 14882:2024)
  • 6.8.3 可选扩展浮点类型 [basic.extended.fp]

[编辑] 另请参阅