sandbox
Loading...
Searching...
No Matches
distance.hpp
1#ifndef LIBSBX_UNITS_DISTANCE_HPP_
2#define LIBSBX_UNITS_DISTANCE_HPP_
3
4#include <libsbx/units/quantity.hpp>
5
6namespace sbx::units {
7
8namespace detail {
9
10struct distance_tag { };
11
12} // namespace detail
13
19
20namespace literals {
21
22inline constexpr auto operator"" _km(long double value) -> kilometer {
23 return kilometer{static_cast<kilometer::value_type>(value)};
24}
25
26inline constexpr auto operator"" _km(unsigned long long value) -> kilometer {
27 return kilometer{static_cast<kilometer::value_type>(value)};
28}
29
30inline constexpr auto operator"" _m(long double value) -> meter {
31 return meter{static_cast<meter::value_type>(value)};
32}
33
34inline constexpr auto operator"" _m(unsigned long long value) -> meter {
35 return meter{static_cast<meter::value_type>(value)};
36}
37
38inline constexpr auto operator"" _dm(long double value) -> decimeter {
39 return decimeter{static_cast<decimeter::value_type>(value)};
40}
41
42inline constexpr auto operator"" _dm(unsigned long long value) -> decimeter {
43 return decimeter{static_cast<decimeter::value_type>(value)};
44}
45
46inline constexpr auto operator"" _cm(long double value) -> centimeter {
47 return centimeter{static_cast<centimeter::value_type>(value)};
48}
49
50inline constexpr auto operator"" _cm(unsigned long long value) -> centimeter {
51 return centimeter{static_cast<centimeter::value_type>(value)};
52}
53
54inline constexpr auto operator"" _mm(long double value) -> millimeter {
55 return millimeter{static_cast<millimeter::value_type>(value)};
56}
57
58inline constexpr auto operator"" _mm(unsigned long long value) -> millimeter {
59 return millimeter{static_cast<millimeter::value_type>(value)};
60}
61
62} // namespace literals
63
64} // namespace sbx::units
65
66#endif // LIBSBX_UNITS_DISTANCE_HPP_
Definition: quantity.hpp:65
Definition: distance.hpp:10