1 #ifndef Protium_Quantities_h_
2 #define Protium_Quantities_h_
14 template <
typename T,
class Dimensions>
18 template<
class OtherDimensions>
21 ERROR_QUANTITIES_NOT_EQUAL_DIMENSIONS() );
33 template <
class T,
class D>
41 template <
class T,
class D>
47 template <
class T,
class D1,
class D2>
54 template <
class T,
class D1,
class D2>
64 typedef Design::Quantity<double, Design::scalar>
Scalar;
65 typedef Design::Quantity<double, Design::mass>
Mass;
66 typedef Design::Quantity<double, Design::length>
Length;
67 typedef Design::Quantity<double, Design::time>
Time;
68 typedef Design::Quantity<double, Design::charge>
Charge;
69 typedef Design::Quantity<double, Design::temperature>
Temperature;
70 typedef Design::Quantity<double, Design::intensity>
Intensity;
71 typedef Design::Quantity<double, Design::angle>
Angle;
74 typedef Design::Quantity<double, Design::velocity>
Velocity;
75 typedef Design::Quantity<double, Design::rate>
Rate;
76 typedef Design::Quantity<double, Design::energy>
Energy;
77 typedef Design::Quantity<double, Design::action>
Action;
78 typedef Design::Quantity<double, Design::fermiDimension>
FermiQuantity;
102 #endif //Protium_Quantities_h_
Maps to types to a new type.
Quantity< T, D > operator-(Quantity< T, D > x, Quantity< T, D > y)
Defines dimensionful quantity subtraction.
#define PROTIUM_STATIC_ASSERT(expr, msg)
Use for performing static assertion.
Defines a dimensionful quantities.
const T & ConstValue() const
double MagneticFluxDensity
Quantity(const OtherDimensions &rhs)
General list of types. Points to Head and Tail.
Quantity< T, typename DimensionAdd< D1, D2 >::Type > operator*(Quantity< T, D1 > x, Quantity< T, D2 > y)
Defines dimensionful multiplication.
Quantity< T, D > operator+(Quantity< T, D > x, Quantity< T, D > y)
Defines dimensionful quantity addition.
Quantity< T, typename DimensionSubtract< D1, D2 >::Type > operator/(Quantity< T, D1 > x, Quantity< T, D2 > y)
Defines dimensionful Division.