tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
month_day_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_DAY_LAST_HPP
5#define TETL_CHRONO_MONTH_DAY_LAST_HPP
6
7#include <etl/_chrono/month.hpp>
8
9namespace etl::chrono {
10
11/// \ingroup chrono
13 constexpr explicit month_day_last(chrono::month const& m) noexcept
14 : _m{m}
15 {
16 }
17
18 [[nodiscard]] constexpr auto month() const noexcept -> chrono::month
19 {
20 return _m;
21 }
22
23 [[nodiscard]] constexpr auto ok() const noexcept -> bool
24 {
25 return month().ok();
26 }
27
28 friend constexpr auto operator==(month_day_last const& lhs, month_day_last const& rhs) noexcept -> bool
29 {
30 return lhs.month() == rhs.month();
31 }
32
33private:
34 chrono::month _m;
35};
36
37[[nodiscard]] constexpr auto operator/(month const& m, last_spec /*tag*/) noexcept -> month_day_last
38{
39 return month_day_last{m};
40}
41
42[[nodiscard]] constexpr auto operator/(int m, last_spec /*tag*/) noexcept -> month_day_last
43{
44 return month_day_last{month(static_cast<unsigned>(m))};
45}
46
47[[nodiscard]] constexpr auto operator/(last_spec /*tag*/, month const& m) noexcept -> month_day_last
48{
49 return month_day_last{m};
50}
51
52[[nodiscard]] constexpr auto operator/(last_spec /*tag*/, int m) noexcept -> month_day_last
53{
54 return month_day_last{month(static_cast<unsigned>(m))};
55}
56
57} // namespace etl::chrono
58
59#endif // TETL_CHRONO_MONTH_DAY_LAST_HPP
Definition abs.hpp:12
constexpr auto operator/(month const &m, int d) noexcept -> month_day
Definition month_day.hpp:59
constexpr auto operator/(last_spec, month const &m) noexcept -> month_day_last
Definition month_day_last.hpp:47
constexpr auto operator/(int m, last_spec) noexcept -> month_day_last
Definition month_day_last.hpp:42
constexpr auto operator==(month lhs, month rhs) noexcept -> bool
Definition month.hpp:53
Definition adjacent_find.hpp:9
Definition month_day_last.hpp:12
constexpr auto ok() const noexcept -> bool
Definition month_day_last.hpp:23
constexpr auto month() const noexcept -> chrono::month
Definition month_day_last.hpp:18
friend constexpr auto operator==(month_day_last const &lhs, month_day_last const &rhs) noexcept -> bool
Definition month_day_last.hpp:28
constexpr month_day_last(chrono::month const &m) noexcept
Definition month_day_last.hpp:13
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