40 template<
typename DimT,
typename Scale = std::ratio<1>,
typename TagT =
void>
55 static constexpr double scale =
static_cast<double>(Scale::num) / Scale::den;
74 template<
typename DimT,
typename Scale,
typename TagT>
81 template<
typename U1,
typename U2>
85 typename std::ratio_multiply<typename U1::ScaleT, typename U2::ScaleT>::type
89 template<
typename U1,
typename U2>
93 typename std::ratio_divide<typename U1::ScaleT, typename U2::ScaleT>::type
97 template<
template<
typename,
typename>
class F,
typename...
Ts>
100 template<
template<
typename,
typename>
class F,
typename T>
105 template<
template<
typename,
typename>
class F,
106 typename T1,
typename T2,
typename...
Rest>
110 typename F<T1, T2>::type,
115 template<
template<
typename,
typename>
class F,
typename...
Ts>
118 template<
typename...
Us>
121 template<
typename...
Us>
124 template <
typename U,
typename Ratio>
128 std::ratio_multiply<typename U::ScaleT, Ratio>
132 template <
typename U,
typename Ratio = std::ratio<1>>
FoldLeftT< UnitMulBin, Us... > UnitMulT
typename DimDiv< D1, D2 >::type DimDivT
Convenience alias for DimDiv.
FoldLeftT< UnitDivBin, Us... > UnitDivT
typename DimMul< D1, D2 >::type DimMulT
Convenience alias for DimMul.
typename UnitRec< U, Ratio >::type UnitRecT
typename FoldLeft< F, Ts... >::type FoldLeftT
typename FoldLeft< F, typename F< T1, T2 >::type, Rest... >::type type
Physical unit with dimension and scale factor relative to SI base.
Unit()=default
Default constructor.
static constexpr double scale
Scale factor relative to the SI base unit.
Trait: check if a type is a Unit instantiation.