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

履歴 編集

function
<chrono>

# std::chrono::operator/(C++20)

    namespace std::chrono {
      constexpr year_month
        operator/(const year& y,
                  const month& m) noexcept;                 // (1) C++20
      constexpr year_month
        operator/(const year& y,
                  int m) noexcept;                          // (2) C++20

      constexpr year_month_day
        operator/(const year& y,
                  const month_day& md) noexcept;            // (3) C++20
      constexpr year_month_day
        operator/(int y,
                  const month_day& md) noexcept;            // (4) C++20

      constexpr year_month_day_last
        operator/(const year& y,
                  const month_day_last& mdl) noexcept;      // (5) C++20
      constexpr year_month_day_last
        operator/(int y,
                  const month_day_last& mdl) noexcept;      // (6) C++20

      constexpr year_month_weekday
        operator/(const year& y,
                  const month_weekday& mwd) noexcept;       // (7) C++20
      constexpr year_month_weekday
        operator/(int y,
                  const month_weekday& mwd) noexcept;       // (8) C++20

      constexpr year_month_weekday_last
        operator/(const year& y,
                  const month_weekday_last& mwdl) noexcept; // (9) C++20
      constexpr year_month_weekday_last
        operator/(int y,
                  const month_weekday_last& mwdl) noexcept; // (10) C++20
    }

## 概要

カレンダー要素同士をつなぎ合わせる。

- (1) : `year`型と`month`型をつなぎ、年と月の両方の情報をもつ型にまとめる
- (2) : `year`型と`int`型での月の値をつなぎ、年と月の両方の情報をもつ型にまとめる
- (3) : `year`型と`month_day`型をつなぎ、年月日の情報をもつ型にまとめる
- (4) : `int`型の年と`month_day`型をつなぎ、年月日の情報をもつ型にまとめる
- (5) : `year`型と`month_day_last`型をつなぎ、年月の最終日の情報をもつ型にまとめる
- (6) : `int`型の年と`month_day_last`型をつなぎ、年月の最終日の情報をもつ型にまとめる
- (7) : `year`型と`month_weekday`型をつなぎ、年月のN回目の曜日の情報をもつ型にまとめる
- (8) : `int`型の年と`month_weekday`型をつなぎ、年月のN回目の曜日の情報をもつ型にまとめる
- (9) : `year`型と`month_weekday_last`型をつなぎ、年月の指定した最終曜日の情報をもつ型にまとめる
- (10) : `int`型の年と`month_weekday_last`型をつなぎ、年月の指定した最終曜日の情報をもつ型にまとめる

## 戻り値

- (1) : `return {y, m};`
- (2) : `return y / month{m};`
- (3) : `return y / md.month() / md.day();`
- (4) : `return year(y) / md;`
- (5) : `return year_month_day_last{y, mdl};`
- (6) : `return year(y) / mdl;`
- (7) : `return year_month_weekday{y, mwd.month(), mwd.weekday_indexed()};`
- (8) : `return year(y) / mwd;`
- (9) : `return year_month_weekday_last{y, mwdl.month(), mwdl.weekday_last()};`
- (10) : `return year(y) / mwdl;`

## 例外

投げない

## 例

    #include <cassert>
    #include <chrono>

    using namespace std::chrono;

    int main()
    {
      // (1), (2)
      assert(2020y/March == (year_month{2020y, March}));
      assert(2020y/3 == (year_month{2020y, March}));

      // (3), (4)
      assert(2020y/(March/1) == (year_month_day{2020y, March, 1d}));
      assert(2020/(March/1) == (year_month_day{2020y, March, 1d}));

      // (5), (6)
      assert(2020y/(March/last) == (year_month_day_last{2020y, March/last}));
      assert(2020/(March/last) == (year_month_day_last{2020y, March/last}));

      // (7), (8)
      assert(2020y/(March/Sunday[1]) == (year_month_weekday{2020y, March, Sunday[1]}));
      assert(2020/(March/Sunday[1]) == (year_month_weekday{2020y, March, Sunday[1]}));

      // (9), (10)
      assert(2020y/(March/Sunday[last]) == (year_month_weekday_last{2020y, March, Sunday[last]}));
      assert(2020/(March/Sunday[last]) == (year_month_weekday_last{2020y, March, Sunday[last]}));
    }

### 出力

## バージョン

### 言語

- C++20

### 処理系

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