最終更新日時(UTC): 2026年06月15日 05時22分22秒
Akira Takahashi が更新

履歴 編集

macro
<cfloat>

# LDBL_SNAN(C++26)

    #define LDBL_SNAN see below

## 概要

`long double`型のシグナルNaN (signaling NaN) を表す定数式マクロ。

`std::numeric_limits<long double>::signaling_NaN()`と等しい。

C23で`<float.h>`に追加されたマクロであり、C++26で`<cfloat>`に取り込まれた。

## 備考

- シグナルNaNがサポートされない場合、このマクロは定義されない

## 例

    #include <iostream>
    #include <cfloat>
    #include <cmath>

    int main()
    {
      long double x = LDBL_SNAN;
      std::cout << std::boolalpha << std::isnan(x) << std::endl;
    }

### 出力

    true

## バージョン

### 言語

- C++26

### 処理系

- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌

## 関連項目

- `FLT_SNAN`: `float`型のシグナルNaN
- `DBL_SNAN`: `double`型のシグナルNaN
- `NAN`: `float`型のquiet NaN

## 参照

- P3348R4 C++26 should refer to C23 not C17
  - C++26がC23を参照するようになり、このマクロが`<cfloat>`に追加された