22 static_assert(
sizeof...(Cs) > 0,
"Empty strings are disallowed");
25 static constexpr const std::array<char,
sizeof...(Cs)>
value{{Cs...}};
26 static constexpr const std::string_view
str{
value.data(),
value.size()};
30template <
typename _ratio>
struct ratio_prefix : std::false_type {};
33struct ratio_prefix<std::atto> : std::integral_constant<char, 'a'> {};
35struct ratio_prefix<std::femto> : std::integral_constant<char, 'f'> {};
37struct ratio_prefix<std::pico> : std::integral_constant<char, 'p'> {};
39struct ratio_prefix<std::nano> : std::integral_constant<char, 'n'> {};
41struct ratio_prefix<std::micro> : std::integral_constant<char, 'u'> {};
43struct ratio_prefix<std::milli> : std::integral_constant<char, 'm'> {};
45struct ratio_prefix<std::centi> : std::integral_constant<char, 'c'> {};
47struct ratio_prefix<std::kilo> : std::integral_constant<char, 'k'> {};
49struct ratio_prefix<std::mega> : std::integral_constant<char, 'M'> {};
51struct ratio_prefix<std::giga> : std::integral_constant<char, 'G'> {};
53struct ratio_prefix<std::tera> : std::integral_constant<char, 'T'> {};
55struct ratio_prefix<std::peta> : std::integral_constant<char, 'P'> {};
57struct ratio_prefix<std::exa> : std::integral_constant<char, 'E'> {};
62template <
char _dimension_symbol,
typename _ratio,
63 typename _exponent = std::ratio<1>>
Namespace containing implementation details for SI.
Definition acceleration.h:34
Definition absorbed_dose.h:18
base template for ratio prefix, unusable
Definition unit_symbol.h:30
Compile time string provider for conversion of unit types to strings.
Definition unit_symbol.h:21
static constexpr const std::array< char, sizeof...(Cs)> value
Definition unit_symbol.h:25
static constexpr const std::string_view str
Definition unit_symbol.h:26
Base struct. Unusable needs template overloading.
Definition unit_symbol.h:64