[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;