- chrono[meta header]
- std::chrono[meta namespace]
- function[meta id-type]
- cpp20[meta cpp]
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)};
- y.count()[link /reference/chrono/duration/count.md]
- (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);
}
- chrono::Saturday[link /reference/chrono/weekday_constants.md]
- chrono::Tuesday[link /reference/chrono/weekday_constants.md]
- C++20
- Clang: 8.0
- GCC: (9.2時点で実装なし)
- Visual C++: (2019 Update 3時点で実装なし)