[time.cal.operators] (original) (raw)
30 Time library [time]
30.8 The civil calendar [time.cal]
30.8.18 Conventional syntax operators [time.cal.operators]
A set of overloaded operator/ functions provides a conventional syntax for the creation of civil calendar dates.
[Note 1:
The year, month, and day are accepted in any of the following 3 orders:year/month/day month/day/year day/month/year
Anywhere a day is needed, any of the following can also be specified:last_weekday_[_i_] _weekday_[last]
— _end note_]
[Note 2:
Partial-date types such as year_month and month_daycan be created by not applying the second division operator for any of the three orders.
For example:year_month ym = 2015y/April; month_day md1 = April/4; month_day md2 = 4d/April;
— _end note_]
[Example 1: auto a = 2015/4/4; auto b = 2015y/4/4; auto c = 2015y/4d/April; auto d = 2015/April/4; — _end example_]
constexpr year_monthoperator/(const year& y, const month& m) noexcept;
constexpr year_monthoperator/(const year& y, int m) noexcept;
constexpr month_dayoperator/(const month& m, const day& d) noexcept;
constexpr month_dayoperator/(const month& m, int d) noexcept;
constexpr month_dayoperator/(int m, const day& d) noexcept;
constexpr month_dayoperator/(const day& d, const month& m) noexcept;
constexpr month_dayoperator/(const day& d, int m) noexcept;
constexpr month_day_lastoperator/(const month& m, last_spec) noexcept;
Returns: month_day_last{m}.
constexpr month_day_lastoperator/(int m, last_spec) noexcept;
Returns: month(m) / last.
constexpr month_day_lastoperator/(last_spec, const month& m) noexcept;
constexpr month_day_lastoperator/(last_spec, int m) noexcept;
Returns: month(m) / last.
constexpr month_weekdayoperator/(const month& m, const weekday_indexed& wdi) noexcept;
constexpr month_weekdayoperator/(int m, const weekday_indexed& wdi) noexcept;
constexpr month_weekdayoperator/(const weekday_indexed& wdi, const month& m) noexcept;
constexpr month_weekdayoperator/(const weekday_indexed& wdi, int m) noexcept;
constexpr month_weekday_lastoperator/(const month& m, const weekday_last& wdl) noexcept;
constexpr month_weekday_lastoperator/(int m, const weekday_last& wdl) noexcept;
constexpr month_weekday_lastoperator/(const weekday_last& wdl, const month& m) noexcept;
constexpr month_weekday_lastoperator/(const weekday_last& wdl, int m) noexcept;
constexpr year_month_dayoperator/(const year_month& ym, const day& d) noexcept;
Returns: {ym.year(), ym.month(), d}.
constexpr year_month_dayoperator/(const year_month& ym, int d) noexcept;
constexpr year_month_dayoperator/(const year& y, const month_day& md) noexcept;
Returns: y / md.month() / md.day().
constexpr year_month_dayoperator/(int y, const month_day& md) noexcept;
constexpr year_month_dayoperator/(const month_day& md, const year& y) noexcept;
constexpr year_month_dayoperator/(const month_day& md, int y) noexcept;
constexpr year_month_day_lastoperator/(const year_month& ym, last_spec) noexcept;
Returns: {ym.year(), month_day_last{ym.month()}}.
constexpr year_month_day_lastoperator/(const year& y, const month_day_last& mdl) noexcept;
constexpr year_month_day_lastoperator/(int y, const month_day_last& mdl) noexcept;
constexpr year_month_day_lastoperator/(const month_day_last& mdl, const year& y) noexcept;
constexpr year_month_day_lastoperator/(const month_day_last& mdl, int y) noexcept;
constexpr year_month_weekdayoperator/(const year_month& ym, const weekday_indexed& wdi) noexcept;
Returns: {ym.year(), ym.month(), wdi}.
constexpr year_month_weekdayoperator/(const year& y, const month_weekday& mwd) noexcept;
Returns: {y, mwd.month(), mwd.weekday_indexed()}.
constexpr year_month_weekdayoperator/(int y, const month_weekday& mwd) noexcept;
constexpr year_month_weekdayoperator/(const month_weekday& mwd, const year& y) noexcept;
constexpr year_month_weekdayoperator/(const month_weekday& mwd, int y) noexcept;
constexpr year_month_weekday_lastoperator/(const year_month& ym, const weekday_last& wdl) noexcept;
Returns: {ym.year(), ym.month(), wdl}.
constexpr year_month_weekday_lastoperator/(const year& y, const month_weekday_last& mwdl) noexcept;
Returns: {y, mwdl.month(), mwdl.weekday_last()}.
constexpr year_month_weekday_lastoperator/(int y, const month_weekday_last& mwdl) noexcept;
constexpr year_month_weekday_lastoperator/(const month_weekday_last& mwdl, const year& y) noexcept;
constexpr year_month_weekday_lastoperator/(const month_weekday_last& mwdl, int y) noexcept;