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

履歴 編集

function
<chrono>

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

    namespace std::chrono {
      constexpr weekday operator+(const weekday& x, const days& y) noexcept; // (1) C++20
      constexpr weekday operator+(const days& x, const weekday& y) noexcept; // (2) C++20
    }

## 概要

`weekday`の加算を行う。

- (1) : `weekday`に日単位の時間間隔を加算する
- (2) : 日単位の時間間隔に`weekday`を加算する

## 戻り値

- (1) :

ユークリッド除法 (Euclidean division) による除算関数`modulo(a, b)`、および`weekday`オブジェクト`x`がコンストラクタで設定された曜日を表す値`wd`を持っているとして、

    return weekday{modulo(static_cast<long long>(x.wd) + y.count(), 7)};

- (2) :

    return y + x;

## 例外

投げない

## 例

    #include <cassert>
    #include <chrono>

    namespace chrono = std::chrono;

    int main()
    {
      assert(chrono::Saturday + chrono::days{3} == chrono::Tuesday);
      assert(chrono::days{3} + chrono::Saturday == chrono::Tuesday);
    }

### 出力

## バージョン

### 言語

- C++20

### 処理系

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