sandbox
Loading...
Searching...
No Matches
time.hpp
1#ifndef LIBSBX_UNITS_TIME_HPP_
2#define LIBSBX_UNITS_TIME_HPP_
3
4#include <libsbx/units/quantity.hpp>
5
6namespace sbx::units {
7
8namespace detail {
9
10struct time_tag { };
11
12} // namespace detail
13
24
25namespace literals {
26
27constexpr auto operator"" _y(long double value) -> year {
28 return year{static_cast<year::value_type>(value)};
29}
30
31constexpr auto operator"" _y(unsigned long long value) -> year {
32 return year{static_cast<year::value_type>(value)};
33}
34
35constexpr auto operator"" _mo(long double value) -> month {
36 return month{static_cast<month::value_type>(value)};
37}
38
39constexpr auto operator"" _mo(unsigned long long value) -> month {
40 return month{static_cast<month::value_type>(value)};
41}
42
43constexpr auto operator"" _w(long double value) -> week {
44 return week{static_cast<week::value_type>(value)};
45}
46
47constexpr auto operator"" _w(unsigned long long value) -> week {
48 return week{static_cast<week::value_type>(value)};
49}
50
51constexpr auto operator"" _d(long double value) -> day {
52 return day{static_cast<day::value_type>(value)};
53}
54
55constexpr auto operator"" _d(unsigned long long value) -> day {
56 return day{static_cast<day::value_type>(value)};
57}
58
59constexpr auto operator"" _h(long double value) -> hour {
60 return hour{static_cast<hour::value_type>(value)};
61}
62
63constexpr auto operator"" _h(unsigned long long value) -> hour {
64 return hour{static_cast<hour::value_type>(value)};
65}
66
67constexpr auto operator"" _min(long double value) -> minute {
68 return minute{static_cast<minute::value_type>(value)};
69}
70
71constexpr auto operator"" _min(unsigned long long value) -> minute {
72 return minute{static_cast<minute::value_type>(value)};
73}
74
75constexpr auto operator"" _s(long double value) -> second {
76 return second{static_cast<second::value_type>(value)};
77}
78
79constexpr auto operator"" _s(unsigned long long value) -> second {
80 return second{static_cast<second::value_type>(value)};
81}
82
83constexpr auto operator"" _ms(long double value) -> millisecond {
84 return millisecond{static_cast<millisecond::value_type>(value)};
85}
86
87constexpr auto operator"" _ms(unsigned long long value) -> millisecond {
88 return millisecond{static_cast<millisecond::value_type>(value)};
89}
90
91constexpr auto operator"" _us(long double value) -> microsecond {
92 return microsecond{static_cast<microsecond::value_type>(value)};
93}
94
95constexpr auto operator"" _us(unsigned long long value) -> microsecond {
96 return microsecond{static_cast<microsecond::value_type>(value)};
97}
98
99constexpr auto operator"" _ns(long double value) -> nanosecond {
100 return nanosecond{static_cast<nanosecond::value_type>(value)};
101}
102
103constexpr auto operator"" _ns(unsigned long long value) -> nanosecond {
104 return nanosecond{static_cast<nanosecond::value_type>(value)};
105}
106
107};
108
109} // namespace sbx::units
110
111#endif // LIBSBX_UNITS_TIME_HPP_
Definition: quantity.hpp:65
Definition: time.hpp:10