TypeSI
Units of 'Système international' Blended for C++
Loading...
Searching...
No Matches
si_base.hpp
Go to the documentation of this file.
1#pragma once
4#include "si_internal.hpp"
5namespace Si {
7namespace Base {
10template <typename T>
11using Meter =
12 Internal::Unit<T, std::ratio<1>, std::ratio<0>, std::ratio<0>,
13 std::ratio<0>, std::ratio<0>, std::ratio<0>, std::ratio<0>>;
16template <typename T>
17using Kilogram =
18 Internal::Unit<T, std::ratio<0>, std::ratio<1>, std::ratio<0>,
19 std::ratio<0>, std::ratio<0>, std::ratio<0>, std::ratio<0>>;
22template <typename T>
23using Second =
24 Internal::Unit<T, std::ratio<0>, std::ratio<0>, std::ratio<1>,
25 std::ratio<0>, std::ratio<0>, std::ratio<0>, std::ratio<0>>;
28template <typename T>
29using Ampere =
30 Internal::Unit<T, std::ratio<0>, std::ratio<0>, std::ratio<0>,
31 std::ratio<1>, std::ratio<0>, std::ratio<0>, std::ratio<0>>;
34template <typename T>
35using Kelvin =
36 Internal::Unit<T, std::ratio<0>, std::ratio<0>, std::ratio<0>,
37 std::ratio<0>, std::ratio<1>, std::ratio<0>, std::ratio<0>>;
40template <typename T>
41using Mole =
42 Internal::Unit<T, std::ratio<0>, std::ratio<0>, std::ratio<0>,
43 std::ratio<0>, std::ratio<0>, std::ratio<1>, std::ratio<0>>;
46template <typename T>
47using Candela =
48 Internal::Unit<T, std::ratio<0>, std::ratio<0>, std::ratio<0>,
49 std::ratio<0>, std::ratio<0>, std::ratio<0>, std::ratio<1>>;
51namespace Literals {
53Meter<long double> operator"" _m(long double value) {
54 return Meter<long double>(value);
55}
57Kilogram<long double> operator"" _kg(long double value) {
58 return Kilogram<long double>(value);
59}
61Second<long double> operator"" _s(long double value) {
62 return Second<long double>(value);
63}
65Ampere<long double> operator"" _A(long double value) {
66 return Ampere<long double>(value);
67}
69Kelvin<long double> operator"" _K(long double value) {
70 return Kelvin<long double>(value);
71}
73Mole<long double> operator"" _mol(long double value) {
74 return Mole<long double>(value);
75}
77Candela<long double> operator"" _cd(long double value) {
78 return Candela<long double>(value);
79}
80} // namespace Literals
81} // namespace Base
82} // namespace Si
Generic unit type.
Definition: si_internal.hpp:22
Core logic of units.