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 ❌