[time.cal.mwd] (original) (raw)
30 Time library [time]
30.8 The civil calendar [time.cal]
30.8.11 Class month_weekday [time.cal.mwd]
30.8.11.1 Overview [time.cal.mwd.overview]
namespace std::chrono { class month_weekday { chrono::month m_; chrono::weekday_indexed wdi_; public: constexpr month_weekday(const chrono::month& m, const chrono::weekday_indexed& wdi) noexcept;constexpr chrono::month month() const noexcept;constexpr chrono::weekday_indexed weekday_indexed() const noexcept;constexpr bool ok() const noexcept;};}
month_weekday represents the weekday of a month, of an as yet unspecified year.
To do this the month_weekday stores a month and a weekday_indexed.
[Example 1: constexpr auto mwd= February/Tuesday[3]; static_assert(mwd.month() == February);static_assert(mwd.weekday_indexed() == Tuesday[3]); — _end example_]
month_weekday is a trivially copyable and standard-layout class type.
30.8.11.2 Member functions [time.cal.mwd.members]
constexpr month_weekday(const chrono::month& m, const chrono::weekday_indexed& wdi) noexcept;
Effects: Initializes m_ with m, and wdi_ with wdi.
constexpr chrono::month month() const noexcept;
constexpr chrono::weekday_indexed weekday_indexed() const noexcept;
constexpr bool ok() const noexcept;
Returns: m_.ok() && wdi_.ok().
30.8.11.3 Non-member functions [time.cal.mwd.nonmembers]
constexpr bool operator==(const month_weekday& x, const month_weekday& y) noexcept;
Returns: x.month() == y.month() && x.weekday_indexed() == y.weekday_indexed().
template<class charT, class traits> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, const month_weekday& mwd);
Effects: Equivalent to:return os << format(os.getloc(), _STATICALLY-WIDEN_<charT>("{:L}/{:L}"), mwd.month(), mwd.weekday_indexed());