tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
month_weekday_last.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2// SPDX-FileCopyrightText: Copyright (C) 2023 Tobias Hienzsch
3
4#ifndef TETL_CHRONO_MONTH_WEEKDAY_LAST_HPP
5#define TETL_CHRONO_MONTH_WEEKDAY_LAST_HPP
6
7#include <etl/_chrono/month.hpp>
8#include <etl/_chrono/weekday_last.hpp>
9
10namespace etl::chrono {
11
12/// \ingroup chrono
14 constexpr month_weekday_last(chrono::month const& m, chrono::weekday_last const& wdl) noexcept
15 : _m{m}
16 , _wdl{wdl}
17 {
18 }
19
20 [[nodiscard]] constexpr auto ok() const noexcept -> bool
21 {
23 }
24
25 [[nodiscard]] constexpr auto month() const noexcept -> chrono::month
26 {
27 return _m;
28 }
29 [[nodiscard]] constexpr auto weekday_last() const noexcept -> chrono::weekday_last
30 {
31 return _wdl;
32 }
33
34 friend constexpr auto operator==(month_weekday_last const& lhs, month_weekday_last const& rhs) noexcept -> bool
35 {
37 }
38
39private:
40 chrono::month _m;
41 chrono::weekday_last _wdl;
42};
43
44[[nodiscard]] constexpr auto operator/(month const& m, weekday_last const& wdl) noexcept -> month_weekday_last
45{
46 return {m, wdl};
47}
48
49[[nodiscard]] constexpr auto operator/(int m, weekday_last const& wdl) noexcept -> month_weekday_last
50{
51 return {month(static_cast<unsigned>(m)), wdl};
52}
53
54[[nodiscard]] constexpr auto operator/(weekday_last const& wdl, month const& m) noexcept -> month_weekday_last
55{
56 return {m, wdl};
57}
58
59[[nodiscard]] constexpr auto operator/(weekday_last const& wdl, int m) noexcept -> month_weekday_last
60{
61 return {month(static_cast<unsigned>(m)), wdl};
62}
63
64} // namespace etl::chrono
65
66#endif // TETL_CHRONO_MONTH_WEEKDAY_LAST_HPP
Definition abs.hpp:12
constexpr auto operator/(month const &m, weekday_last const &wdl) noexcept -> month_weekday_last
Definition month_weekday_last.hpp:44
constexpr auto operator/(weekday_last const &wdl, month const &m) noexcept -> month_weekday_last
Definition month_weekday_last.hpp:54
constexpr auto operator/(weekday_last const &wdl, int m) noexcept -> month_weekday_last
Definition month_weekday_last.hpp:59
constexpr auto operator/(int m, weekday_last const &wdl) noexcept -> month_weekday_last
Definition month_weekday_last.hpp:49
constexpr auto operator==(month lhs, month rhs) noexcept -> bool
Definition month.hpp:53
Definition adjacent_find.hpp:9
Definition month_weekday_last.hpp:13
constexpr auto ok() const noexcept -> bool
Definition month_weekday_last.hpp:20
friend constexpr auto operator==(month_weekday_last const &lhs, month_weekday_last const &rhs) noexcept -> bool
Definition month_weekday_last.hpp:34
constexpr auto month() const noexcept -> chrono::month
Definition month_weekday_last.hpp:25
constexpr month_weekday_last(chrono::month const &m, chrono::weekday_last const &wdl) noexcept
Definition month_weekday_last.hpp:14
constexpr auto weekday_last() const noexcept -> chrono::weekday_last
Definition month_weekday_last.hpp:29
The class month represents a month in a year.
Definition month.hpp:22
constexpr auto ok() const noexcept -> bool
Definition month.hpp:31
constexpr month(unsigned m) noexcept
Definition month.hpp:25
Definition weekday_last.hpp:12
constexpr auto ok() const noexcept -> bool
Definition weekday_last.hpp:23
friend constexpr auto operator==(weekday_last lhs, weekday_last rhs) noexcept -> bool
Definition weekday_last.hpp:28