diff --git a/include/xo/unit/quantity.hpp b/include/xo/unit/quantity.hpp index c266a9d4..f063c277 100644 --- a/include/xo/unit/quantity.hpp +++ b/include/xo/unit/quantity.hpp @@ -18,8 +18,8 @@ namespace xo { * sizeof(quantity) == sizeof(Repr). **/ template < - typename Repr = double, auto /*natural_unit*/ NaturalUnit = natural_unit(), + typename Repr = double, typename Int2x = detail::width2x_t > class quantity { public: @@ -46,8 +46,8 @@ namespace xo { template constexpr auto with_repr() const { - return quantity(scale_); } @@ -69,9 +69,9 @@ namespace xo { : ::sqrt(rr.outer_scale_sq_)) * rr.outer_scale_factor_.template convert_to() * this->scale_); - return quantity(r_scale); + return quantity(r_scale); } else { - return quantity(std::numeric_limits::quiet_NaN()); + return quantity(std::numeric_limits::quiet_NaN()); } } @@ -93,9 +93,9 @@ namespace xo { * rr.outer_scale_factor_.template convert_to() * this->scale_ / ScaledUnit2.outer_scale_factor_.template convert_to()); - return quantity(r_scale); + return quantity(r_scale); } else { - return quantity(std::numeric_limits::quiet_NaN()); + return quantity(std::numeric_limits::quiet_NaN()); } } @@ -160,7 +160,7 @@ namespace xo { template NaturalUnit = natural_unit()> - using stdquantity = quantity; + using stdquantity = quantity; template constexpr auto @@ -195,8 +195,8 @@ namespace xo { * static_cast(x.scale()) * static_cast(y.scale())); - return quantity(r_scale); } @@ -223,8 +223,8 @@ namespace xo { * static_cast(x.scale()) / static_cast(y.scale())); - return quantity(r_scale); } @@ -280,54 +280,54 @@ namespace xo { namespace qty { // ----- mass ----- - inline constexpr auto picograms(double x) { return quantity(x); } - inline constexpr auto nanograms(double x) { return quantity(x); } - inline constexpr auto micrograms(double x) { return quantity(x); } - inline constexpr auto milligrams(double x) { return quantity(x); } - inline constexpr auto grams(double x) { return quantity(x); } - inline constexpr auto kilograms(double x) { return quantity(x); } - inline constexpr auto tonnes(double x) { return quantity(x); } - inline constexpr auto kilotonnes(double x) { return quantity(x); } - inline constexpr auto megatonnes(double x) { return quantity(x); } - inline constexpr auto gigatonnes(double x) { return quantity(x); } + inline constexpr auto picograms(double x) { return quantity(x); } + inline constexpr auto nanograms(double x) { return quantity(x); } + inline constexpr auto micrograms(double x) { return quantity(x); } + inline constexpr auto milligrams(double x) { return quantity(x); } + inline constexpr auto grams(double x) { return quantity(x); } + inline constexpr auto kilograms(double x) { return quantity(x); } + inline constexpr auto tonnes(double x) { return quantity(x); } + inline constexpr auto kilotonnes(double x) { return quantity(x); } + inline constexpr auto megatonnes(double x) { return quantity(x); } + inline constexpr auto gigatonnes(double x) { return quantity(x); } // ----- distance ----- - inline constexpr auto picometers(double x) { return quantity(x); } - inline constexpr auto nanometers(double x) { return quantity(x); } - inline constexpr auto micrometers(double x) { return quantity(x); } - inline constexpr auto millimeters(double x) { return quantity(x); } - inline constexpr auto meters(double x) { return quantity(x); } - inline constexpr auto kilometers(double x) { return quantity(x); } - inline constexpr auto megameters(double x) { return quantity(x); } - inline constexpr auto gigameters(double x) { return quantity(x); } + inline constexpr auto picometers(double x) { return quantity(x); } + inline constexpr auto nanometers(double x) { return quantity(x); } + inline constexpr auto micrometers(double x) { return quantity(x); } + inline constexpr auto millimeters(double x) { return quantity(x); } + inline constexpr auto meters(double x) { return quantity(x); } + inline constexpr auto kilometers(double x) { return quantity(x); } + inline constexpr auto megameters(double x) { return quantity(x); } + inline constexpr auto gigameters(double x) { return quantity(x); } - inline constexpr auto lightseconds(double x) { return quantity(x); } - inline constexpr auto astronomicalunits(double x) { return quantity(x); } + inline constexpr auto lightseconds(double x) { return quantity(x); } + inline constexpr auto astronomicalunits(double x) { return quantity(x); } static constexpr auto meter = meters(1); // ----- time ----- - inline constexpr auto picoseconds(double x) { return quantity(x); } - inline constexpr auto nanoseconds(double x) { return quantity(x); } - inline constexpr auto microseconds(double x) { return quantity(x); } - inline constexpr auto milliseconds(double x) { return quantity(x); } + inline constexpr auto picoseconds(double x) { return quantity(x); } + inline constexpr auto nanoseconds(double x) { return quantity(x); } + inline constexpr auto microseconds(double x) { return quantity(x); } + inline constexpr auto milliseconds(double x) { return quantity(x); } template - inline constexpr auto seconds(Repr x) { return quantity(x); } + inline constexpr auto seconds(Repr x) { return quantity(x); } template - inline constexpr auto minutes(Repr x) { return quantity(x); } + inline constexpr auto minutes(Repr x) { return quantity(x); } - inline constexpr auto hours(double x) { return quantity(x); } - inline constexpr auto days(double x) { return quantity(x); } - inline constexpr auto weeks(double x) { return quantity(x); } - inline constexpr auto months(double x) { return quantity(x); } - inline constexpr auto years(double x) { return quantity(x); } - inline constexpr auto year250s(double x) { return quantity(x); } - inline constexpr auto year360s(double x) { return quantity(x); } - inline constexpr auto year365s(double x) { return quantity(x); } + inline constexpr auto hours(double x) { return quantity(x); } + inline constexpr auto days(double x) { return quantity(x); } + inline constexpr auto weeks(double x) { return quantity(x); } + inline constexpr auto months(double x) { return quantity(x); } + inline constexpr auto years(double x) { return quantity(x); } + inline constexpr auto year250s(double x) { return quantity(x); } + inline constexpr auto year360s(double x) { return quantity(x); } + inline constexpr auto year365s(double x) { return quantity(x); } //inline constexpr auto year366s(double x) { return quantity(x); } static constexpr auto second = seconds(1); @@ -335,8 +335,8 @@ namespace xo { // ----- volatility ----- /* volatility in units of 1/yr */ - inline constexpr auto volatility_250d(double x) { return quantity(x); } - inline constexpr auto volatility_360d(double x) { return quantity(x); } + inline constexpr auto volatility_250d(double x) { return quantity(x); } + inline constexpr auto volatility_360d(double x) { return quantity(x); } } /* reminder: see [quantity_ops.hpp] for operator* etc */ diff --git a/include/xo/unit/quantity_iostream.hpp b/include/xo/unit/quantity_iostream.hpp index e6f34d75..1e4826d7 100644 --- a/include/xo/unit/quantity_iostream.hpp +++ b/include/xo/unit/quantity_iostream.hpp @@ -18,7 +18,7 @@ namespace xo { > inline std::ostream & operator<< (std::ostream & os, - const quantity & x) + const quantity & x) { os << x.scale() << x.abbrev(); return os; diff --git a/utest/quantity.test.cpp b/utest/quantity.test.cpp index 10f7c32a..ba477a39 100644 --- a/utest/quantity.test.cpp +++ b/utest/quantity.test.cpp @@ -387,8 +387,8 @@ namespace xo { static_assert(rr.outer_scale_factor_.template convert_to() == 1.0); static_assert(rr.natural_unit_.n_bpu() == 1); - constexpr auto q1 = quantity(ms.scale() * ms.scale()); /* proof that q is constexpr */ @@ -439,9 +439,9 @@ namespace xo { static_assert(rr.outer_scale_factor_.template convert_to() == 1.0); static_assert(rr.natural_unit_.n_bpu() == 0); - constexpr auto q1 = quantity(ms.scale() * ms.scale()); + constexpr auto q1 = quantity(ms.scale() * ms.scale()); /* proof that q is constexpr */ static_assert(q1.scale() == 1.0);