SI 2.5.4
A header only c++ library that provides type safety and user defined literals for handling physical values defined in the International System of Units.
Loading...
Searching...
No Matches
radioactivity.h
Go to the documentation of this file.
1
12#pragma once
13
16#include "detail/unit.h"
17#include "detail/unit_symbol.h"
18namespace SI {
19
23template <typename _type, class _ratio = std::ratio<1>>
24using radioactivity_t = detail::unit_t<'A', std::ratio<1>, _type, _ratio>;
25
27template <typename _type>
29template <typename _type>
31template <typename _type>
33template <typename _type>
35template <typename _type>
37template <typename _type>
39template <typename _type>
41template <typename _type>
43template <typename _type>
45template <typename _type>
47template <typename _type>
49template <typename _type>
51template <typename _type>
53
54// specialize unit_symbol for usage with stream operators
55template <>
56struct unit_symbol<'A', std::ratio<1>>
57 : SI::detail::unit_symbol_impl<'B', 'q'> {};
58
59template <typename _ratio>
60struct unit_symbol<'A', _ratio>
61 : SI::detail::unit_symbol_impl<SI::detail::ratio_prefix<_ratio>::value, 'B',
62 'q'> {};
63
64inline namespace literals {
65template <char... _digits>
66constexpr atto_becquerel_t<int64_t> operator""_aBq() {
68 SI::detail::parsing::Number<_digits...>::value};
69}
70
71template <char... _digits>
72constexpr femto_becquerel_t<int64_t> operator""_fBq() {
74 SI::detail::parsing::Number<_digits...>::value};
75}
76
77template <char... _digits>
78constexpr pico_becquerel_t<int64_t> operator""_pBq() {
80 SI::detail::parsing::Number<_digits...>::value};
81}
82
83template <char... _digits>
84constexpr nano_becquerel_t<int64_t> operator""_nBq() {
86 SI::detail::parsing::Number<_digits...>::value};
87}
88
89template <char... _digits>
90constexpr micro_becquerel_t<int64_t> operator""_uBq() {
92 SI::detail::parsing::Number<_digits...>::value};
93}
94
95template <char... _digits>
96constexpr milli_becquerel_t<int64_t> operator""_mBq() {
98 SI::detail::parsing::Number<_digits...>::value};
99}
100
101template <char... _digits> constexpr becquerel_t<int64_t> operator""_Bq() {
102 return becquerel_t<int64_t>{SI::detail::parsing::Number<_digits...>::value};
103}
104
105template <char... _digits>
106constexpr kilo_becquerel_t<int64_t> operator""_kBq() {
108 SI::detail::parsing::Number<_digits...>::value};
109}
110
111template <char... _digits>
112constexpr mega_becquerel_t<int64_t> operator""_MBq() {
114 SI::detail::parsing::Number<_digits...>::value};
115}
116
117template <char... _digits>
118constexpr giga_becquerel_t<int64_t> operator""_GBq() {
120 SI::detail::parsing::Number<_digits...>::value};
121}
122
123template <char... _digits>
124constexpr tera_becquerel_t<int64_t> operator""_TBq() {
126 SI::detail::parsing::Number<_digits...>::value};
127}
128
129template <char... _digits>
130constexpr peta_becquerel_t<int64_t> operator""_PBq() {
132 SI::detail::parsing::Number<_digits...>::value};
133}
134
135template <char... _digits> constexpr exa_becquerel_t<int64_t> operator""_EBq() {
137 SI::detail::parsing::Number<_digits...>::value};
138}
139
140constexpr atto_becquerel_t<long double> operator""_aBq(long double value) {
141 return atto_becquerel_t<long double>{value};
142}
143
144constexpr femto_becquerel_t<long double> operator""_fBq(long double value) {
145 return femto_becquerel_t<long double>{value};
146}
147
148constexpr pico_becquerel_t<long double> operator""_pBq(long double value) {
149 return pico_becquerel_t<long double>{value};
150}
151
152constexpr nano_becquerel_t<long double> operator""_nBq(long double value) {
153 return nano_becquerel_t<long double>{value};
154}
155
156constexpr micro_becquerel_t<long double> operator""_uBq(long double value) {
157 return micro_becquerel_t<long double>{value};
158}
159
160constexpr milli_becquerel_t<long double> operator""_mBq(long double value) {
161 return milli_becquerel_t<long double>{value};
162}
163
164constexpr becquerel_t<long double> operator""_Bq(long double value) {
165 return becquerel_t<long double>{value};
166}
167
168constexpr kilo_becquerel_t<long double> operator""_kBq(long double value) {
169 return kilo_becquerel_t<long double>{value};
170}
171
172constexpr mega_becquerel_t<long double> operator""_MBq(long double value) {
173 return mega_becquerel_t<long double>{value};
174}
175
176constexpr giga_becquerel_t<long double> operator""_GBq(long double value) {
177 return giga_becquerel_t<long double>{value};
178}
179
180constexpr tera_becquerel_t<long double> operator""_TBq(long double value) {
181 return tera_becquerel_t<long double>{value};
182}
183
184constexpr peta_becquerel_t<long double> operator""_PBq(long double value) {
185 return peta_becquerel_t<long double>{value};
186}
187
188constexpr exa_becquerel_t<long double> operator""_EBq(long double value) {
189 return exa_becquerel_t<long double>{value};
190}
191
192} // namespace literals
193} // namespace SI
Definition absorbed_dose.h:18
interface class for number
Definition number_parser.h:111
Compile time string provider for conversion of unit types to strings.
Definition unit_symbol.h:21
base template class for holding values of type _type to be multiplied with a ratio _ratio
Definition unit.h:51
Base struct. Unusable needs template overloading.
Definition unit_symbol.h:64