最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<chrono>

# std::chrono::year::ok(C++20)

    constexpr bool ok() const noexcept; // (1) C++20

## 概要

`year`オブジェクトが保持する年の値が`[min(), max()]`の範囲内かを判定する。

## 戻り値

コンストラクタで設定されて保持している年を表す値`y`があるとして、以下を返す：

    return min().y <= y && y <= max().y;

## 備考

- コンストラクタでこの範囲外の値が指定された場合、保持される値は未規定になる。そのため関数は、値の妥当性を検証することになる

## 例

    #include <cassert>
    #include <chrono>

    namespace chrono = std::chrono;

    int main()
    {
      chrono::year y{2020};
      assert(y.ok());

      assert(chrono::year{-32767}.ok());
      assert(chrono::year{32767}.ok());
    }

### 出力

## バージョン

### 言語

- C++20

### 処理系

- Clang: 8.0 ✅
- GCC: 9.2 ❌
- Visual C++: 2019 Update 3 ❌

## 参照

- LWG Issue 3209. Expression in `year::ok()` returns clause is ill-formed