23 #ifndef COM_DAFER45_TBTK_QUANTITY_DERIVED
24 #define COM_DAFER45_TBTK_QUANTITY_DERIVED
75 template<
typename Units,
typename Exponents>
78 using IsBaseQuantity = std::false_type;
81 using Unit =
typename Quantity<Units, Exponents>::Unit;
82 using Exponent =
typename Quantity<Units, Exponents>::Exponent;
95 Angle::Unit angleUnit,
96 Charge::Unit chargeUnit,
97 Count::Unit countUnit,
98 Energy::Unit energyUnit,
99 Length::Unit lengthUnit,
100 Temperature::Unit temperatureUnit,
128 template<
typename Units,
typename Exponents>
130 Angle::Unit angleUnit,
131 Charge::Unit chargeUnit,
132 Count::Unit countUnit,
133 Energy::Unit energyUnit,
134 Length::Unit lengthUnit,
135 Temperature::Unit temperatureUnit,
139 Angle::getConversionFactor(angleUnit),
140 static_cast<int>(Exponent::Angle)
142 Charge::getConversionFactor(chargeUnit),
143 static_cast<int>(Exponent::Charge)
145 Count::getConversionFactor(countUnit),
146 static_cast<int>(Exponent::Count)
148 Energy::getConversionFactor(energyUnit),
149 static_cast<int>(Exponent::Energy)
151 Length::getConversionFactor(lengthUnit),
152 static_cast<int>(Exponent::Length)
154 Temperature::getConversionFactor(temperatureUnit),
155 static_cast<int>(Exponent::Temperature)
157 Time::getConversionFactor(timeUnit),
158 static_cast<int>(Exponent::Time)
162 template<
typename Units,
typename Exponents>
164 return static_cast<int>(Exponents::Angle);
167 template<
typename Units,
typename Exponents>
169 return static_cast<int>(Exponents::Charge);
172 template<
typename Units,
typename Exponents>
174 return static_cast<int>(Exponents::Count);
177 template<
typename Units,
typename Exponents>
179 return static_cast<int>(Exponents::Energy);
182 template<
typename Units,
typename Exponents>
184 return static_cast<int>(Exponents::Length);
187 template<
typename Units,
typename Exponents>
189 return static_cast<int>(Exponents::Temperature);
192 template<
typename Units,
typename Exponents>
194 return static_cast<int>(Exponents::Time);
198 enum class MassUnit {kg, g, mg, ug, ng, pg, fg, ag, u};
199 enum class MassExponent {
225 enum class MagneticFieldUnit {MT, kT, T, mT, uT, nT, GG, MG, kG, G, mG, uG};
226 enum class MagneticFieldExponent {
255 enum class VoltageUnit {GV, MV, kV, V, mV, uV, nV};
256 enum class VoltageExponent {
280 enum class VelocityUnit {};
281 enum class VelocityExponent {
298 enum class PlanckUnit {};
299 enum class PlanckExponent {
315 enum class BoltzmannUnit {};
316 enum class BoltzmannExponent{
333 enum class PermeabilityUnit {};
334 enum class PermeabilityExponent {
351 enum class PermittivityUnit {};
352 enum class PermittivityExponent{
369 enum class MagnetonUnit {};
370 enum class MagnetonExponent{