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 ❌