最終更新日時: 2025年10月20日 02時05分17秒 (JST)
Raclamusi が更新

履歴 編集

function
<chrono>

# std::chrono::weekday::c_encoding(C++20)

    constexpr unsigned int c_encoding() const noexcept; // (1) C++20

## 概要

`weekday`オブジェクトが保持する曜日の値を、C / C++の仕様に基づき、日曜日から土曜日までを値の範囲`[0, 6]`として取得する。

## 戻り値

コンストラクタで設定された、日曜日から土曜日までの値範囲`[0, 6]`を持つ変数`wd`があるとして、以下を返す：

    return wd;

## 例外

投げない

## 備考

- この仕様は、`std::tm`クラスの`tm_wday`メンバ変数の値範囲に合わせたものである

## 例

    #include <iostream>
    #include <chrono>

    namespace chrono = std::chrono;

    int main()
    {
      chrono::weekday ar[] = {
        chrono::Sunday,
        chrono::Monday,
        chrono::Tuesday,
        chrono::Wednesday,
        chrono::Thursday,
        chrono::Friday,
        chrono::Saturday
      };

      for (chrono::weekday w : ar) {
        std::cout << w << " : " << w.c_encoding() << std::endl;
      }
    }

### 出力

    Sun : 0
    Mon : 1
    Tue : 2
    Wed : 3
    Thu : 4
    Fri : 5
    Sat : 6

## バージョン

### 言語

- C++20

### 処理系

- Clang: 10.0 ✅
- GCC: 9.2 ❌, 15.1 ✅
- Visual C++: 2019 Update 3 ❌

## 参照

- P1466R3 Miscellaneous minor fixes for chrono