Namespaces
Variants

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

From cppreference.net
Utilities library

実装が以下の ISO 60559 型のいずれかを拡張浮動小数点型としてサポートする場合:

  • 対応するマクロが 1 として定義され、サポートを示します。
  • 対応する 浮動小数点リテラル サフィックスが利用可能です。
  • 対応する型エイリアス名が提供されます:

ヘッダで定義
<stdfloat>
リテラル接尾辞 定義済みマクロ C言語の型 型の特性
ストレージビット数 精度ビット数 指数部ビット数 最大指数
float16_t f16 または F16 __STDCPP_FLOAT16_T__ _Float16 16 11 5 15
float32_t f32 または F32 __STDCPP_FLOAT32_T__ _Float32 32 24 8 127
float64_t f64 または F64 __STDCPP_FLOAT64_T__ _Float64 64 53 11 1023
float128_t f128 または F128 __STDCPP_FLOAT128_T__ _Float128 128 113 15 16383
bfloat16_t bf16 または BF16 __STDCPP_BFLOAT16_T__ (該当なし) 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]

関連項目