10 T operator()(
const T &base,
const T &power)
const {
11 return std::pow(base, power);
24template <
typename Power,
typename T,
typename Function = Internal::std_pow<T>,
29 Function()(
static_cast<T
>(base),
30 static_cast<T
>(Power::num) /
static_cast<T
>(Power::den)));
40 typename Power,
typename Unit,
44 typename std::ratio<
static_cast<std::intmax_t
>(std::pow(PrefixRatio::num,
46 static_cast<std::intmax_t
>(std::pow(PrefixRatio::den,
48 decltype(pow<Power>(std::declval<Unit>()))>
52 "std::ratio for power in case of unit with prefix has to be integer");
54 typename std::ratio<static_cast<std::intmax_t>(
55 std::pow(PrefixRatio::num, Power::num)),
56 static_cast<std::intmax_t
>(
57 std::pow(PrefixRatio::den, Power::num))>::type,
58 decltype(pow<Power>(std::declval<Unit>()))>(
59 +
pow<Power,
decltype(+std::declval<Unit>()), Function>(base.
raw()));
Generic type of unit with prefix.
Definition: si_prefix.hpp:12
const Unit & raw() const
Getter for raw Unit reference without prefix applied.
Definition: si_prefix.hpp:18
Generic unit type.
Definition: si_internal.hpp:22
Internal::Unit< T, std::ratio_multiply< Power, Powers >... > pow(const Internal::Unit< T, Powers... > &base)
Function for exponentiation with Unit as base.
Definition: si_math.hpp:27
Definition: si_math.hpp:9