|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <chrono> | ||
year_month | ||
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month& m)noexcept | (1) | (since C++20) |
constexprauto operator/(conststd::chrono::year& y,int m)noexcept ->std::chrono::year_month; | (2) | (since C++20) |
month_day | ||
constexprauto operator/(conststd::chrono::month& m, conststd::chrono::day& d)noexcept | (3) | (since C++20) |
constexprauto operator/(conststd::chrono::month& m,int d)noexcept ->std::chrono::month_day; | (4) | (since C++20) |
constexprauto operator/(int m,conststd::chrono::day& d)noexcept ->std::chrono::month_day; | (5) | (since C++20) |
constexprauto operator/(conststd::chrono::day& d, conststd::chrono::month& m)noexcept | (6) | (since C++20) |
constexprauto operator/(conststd::chrono::day& d,int m)noexcept ->std::chrono::month_day; | (7) | (since C++20) |
month_day_last | ||
constexprauto operator/(conststd::chrono::month& m, std::chrono::last_spec)noexcept | (8) | (since C++20) |
constexprauto operator/(int m,std::chrono::last_spec)noexcept ->std::chrono::month_day_last; | (9) | (since C++20) |
constexprauto operator/(std::chrono::last_spec, conststd::chrono::month& m)noexcept | (10) | (since C++20) |
constexprauto operator/(std::chrono::last_spec,int m)noexcept ->std::chrono::month_day_last; | (11) | (since C++20) |
month_weekday | ||
constexprauto operator/(conststd::chrono::month& m, conststd::chrono::weekday_indexed& wdi)noexcept | (12) | (since C++20) |
constexprauto operator/(int m,conststd::chrono::weekday_indexed& wdi)noexcept ->std::chrono::month_weekday; | (13) | (since C++20) |
constexprauto operator/(conststd::chrono::weekday_indexed& wdi, conststd::chrono::month& m)noexcept | (14) | (since C++20) |
constexprauto operator/(conststd::chrono::weekday_indexed& wdi,int m)noexcept ->std::chrono::month_weekday; | (15) | (since C++20) |
month_weekday_last | ||
constexprauto operator/(conststd::chrono::month& m, conststd::chrono::weekday_last& wdl)noexcept | (16) | (since C++20) |
constexprauto operator/(int m,conststd::chrono::weekday_last& wdl)noexcept ->std::chrono::month_weekday_last; | (17) | (since C++20) |
constexprauto operator/(conststd::chrono::weekday_last& wdl, conststd::chrono::month& m)noexcept | (18) | (since C++20) |
constexprauto operator/(conststd::chrono::weekday_last& wdl,int m)noexcept ->std::chrono::month_weekday_last; | (19) | (since C++20) |
year_month_day | ||
constexprauto operator/(conststd::chrono::year_month& ym, conststd::chrono::day& d)noexcept | (20) | (since C++20) |
constexprauto operator/(conststd::chrono::year_month& ym,int d)noexcept ->std::chrono::year_month_day; | (21) | (since C++20) |
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month_day& md)noexcept | (22) | (since C++20) |
constexprauto operator/(int y,conststd::chrono::month_day& md)noexcept ->std::chrono::year_month_day; | (23) | (since C++20) |
constexprauto operator/(conststd::chrono::month_day& md, conststd::chrono::year& y)noexcept | (24) | (since C++20) |
constexprauto operator/(conststd::chrono::month_day& md,int y)noexcept ->std::chrono::year_month_day; | (25) | (since C++20) |
year_month_day_last | ||
constexprauto operator/(conststd::chrono::year_month& ym, std::chrono::last_spec)noexcept | (26) | (since C++20) |
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month_day_last& mdl)noexcept | (27) | (since C++20) |
constexprauto operator/(int y,conststd::chrono::month_day_last& mdl)noexcept ->std::chrono::year_month_day_last; | (28) | (since C++20) |
constexprauto operator/(conststd::chrono::month_day_last& mdl, conststd::chrono::year& y)noexcept | (29) | (since C++20) |
constexprauto operator/(conststd::chrono::month_day_last& mdl,int y)noexcept ->std::chrono::year_month_day_last; | (30) | (since C++20) |
year_month_weekday | ||
constexprauto operator/(conststd::chrono::year_month& ym, conststd::chrono::weekday_indexed& wdi)noexcept | (31) | (since C++20) |
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month_weekday& mwd)noexcept | (32) | (since C++20) |
constexprauto operator/(int y,conststd::chrono::month_weekday& mwd)noexcept ->std::chrono::year_month_weekday; | (33) | (since C++20) |
constexprauto operator/(conststd::chrono::month_weekday& mwd, conststd::chrono::year& y)noexcept | (34) | (since C++20) |
constexprauto operator/(conststd::chrono::month_weekday& mwd,int y)noexcept ->std::chrono::year_month_weekday; | (35) | (since C++20) |
year_month_weekday_last | ||
constexprauto operator/(conststd::chrono::year_month& ym, conststd::chrono::weekday_last& wdl)noexcept | (36) | (since C++20) |
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month_weekday_last& mwdl)noexcept | (37) | (since C++20) |
constexprauto operator/(int y,conststd::chrono::month_weekday_last& mwdl)noexcept ->std::chrono::year_month_weekday_last; | (38) | (since C++20) |
constexprauto operator/(conststd::chrono::month_weekday_last& mwdl, conststd::chrono::year& y)noexcept | (39) | (since C++20) |
constexprauto operator/(conststd::chrono::month_weekday_last& mwdl,int y)noexcept ->std::chrono::year_month_weekday_last; | (40) | (since C++20) |
Theseoperator/ overloads provide a conventional syntax for the creation ofProleptic Gregorian calendar dates.
For creation of a full date, any of the following three orders are accepted:
year/month/day,month/day/year,day/month/year.In each caseday can replaced with one of:
weekday[i], for theithweekday of the month;weekday[std::chrono::last], for the lastweekday of the month.A plain integer is accepted if its meaning is unambiguous from the types of other operands:2005y/4/5 is allowed, but5/April/2005 is not.
Partial-date types (year_month,month_day, etc.) can be created by not applying the secondoperator/ in any of the three orders.
#include <chrono>usingnamespace std::chrono; constexprauto ym{2021y/8};static_assert(ym== year_month(year(2021), August)); constexprauto md{9/15d};static_assert(md== month_day(September, day(15))); constexprauto mdl{October/last};static_assert(mdl== month_day_last(month(10))); constexprauto mw{11/Monday[3]};static_assert(mw== month_weekday(November, Monday[3])); constexprauto mwdl{December/Sunday[last]};static_assert(mwdl== month_weekday_last(month(12), weekday_last(Sunday))); // Those 3 year/month/day orders that people actually use on this planet and beyond:constexprauto ymd{year(2021)/January/day(23)};static_assert(ymd== month{1}/23/2021);static_assert(ymd== day{23}/1/2021);static_assert(ymd== year_month_day(2021y, month(January), 23d)); int main(){}