Program Listing for File Current.hpp
↰ Return to documentation for file (src/LouLib/Units/Current.hpp
)
#ifndef LOULIB_CURRENT_HPP
#define LOULIB_CURRENT_HPP
#include "BaseUnit.hpp"
#include "UnitMath.hpp"
namespace LouLib{
namespace Units{
DEFINE_NEW_UNIT(0, 0, 0, 1, 0, 0, 0, 0, Current);
//base unit
constexpr Current AMPERE(1.0);
//metric units
constexpr Current KILOAMPERE = AMPERE * 1000;
constexpr Current HECTOAMPERE = AMPERE * 100;
constexpr Current DECAAMPERE = AMPERE * 10;
constexpr Current DECIAMPERE = AMPERE * 0.1;
constexpr Current CENTIAMPERE = AMPERE * 0.01;
constexpr Current MILLIAMPERE = AMPERE * 0.001;
inline namespace literals{
#define CREATE_CURRENT_STRING_LITERAL(literal, unit) \
constexpr Current operator"" literal(long double x){ \
return static_cast<double>(x)*unit; \
} \
constexpr Current operator"" literal(unsigned long long int x){ \
return static_cast<double>(x)*unit; \
}
CREATE_CURRENT_STRING_LITERAL(_A, AMPERE);
CREATE_CURRENT_STRING_LITERAL(_kA, KILOAMPERE);
CREATE_CURRENT_STRING_LITERAL(_hA, HECTOAMPERE);
CREATE_CURRENT_STRING_LITERAL(_daA, DECAAMPERE);
CREATE_CURRENT_STRING_LITERAL(_dA, DECIAMPERE);
CREATE_CURRENT_STRING_LITERAL(_cA, CENTIAMPERE);
CREATE_CURRENT_STRING_LITERAL(_mA, MILLIAMPERE);
}
}
}
#endif //LOULIB_CURRENT_HPP