Fixed width floating-point types (since C++23)
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Type support
| Basic types | |||||||||||||||||||||
| Fixed width integer types (C++11) | |||||||||||||||||||||
| Fixed width floating-point types (C++23) | |||||||||||||||||||||
|
|||||||||||||||||||||
| Numeric limits | |||||||||||||||||||||
| C numeric limits interface | |||||||||||||||||||||
| Runtime type information | |||||||||||||||||||||
|
|||||||||||||||||||||
実装が以下の 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]