refactor: quantity::value_ renamed to quantity::number_

Refers to #259
This commit is contained in:
Mateusz Pusz
2021-03-19 07:01:12 +01:00
parent 901b09fd52
commit ca7762177f

View File

@@ -106,7 +106,7 @@ using quantity_like_type = quantity<typename quantity_like_traits<Q>::dimension,
*/ */
template<Dimension D, UnitOf<D> U, QuantityValue Rep = double> template<Dimension D, UnitOf<D> U, QuantityValue Rep = double>
class quantity { class quantity {
Rep value_; Rep number_;
public: public:
// member types and values // member types and values
using dimension = D; using dimension = D;
@@ -146,10 +146,10 @@ public:
template<safe_convertible_to_<rep> Value> template<safe_convertible_to_<rep> Value>
constexpr explicit(!(is_same_v<dimension, dim_one> && is_same_v<unit, ::units::one>)) constexpr explicit(!(is_same_v<dimension, dim_one> && is_same_v<unit, ::units::one>))
quantity(const Value& v) : value_(v) {} quantity(const Value& v) : number_(v) {}
template<safe_castable_to_<quantity> Q> template<safe_castable_to_<quantity> Q>
constexpr explicit(false) quantity(const Q& q) : value_(quantity_cast<quantity>(q).number()) {} constexpr explicit(false) quantity(const Q& q) : number_(quantity_cast<quantity>(q).number()) {}
template<QuantityLike Q> template<QuantityLike Q>
requires safe_castable_to_<quantity_like_type<Q>, quantity> requires safe_castable_to_<quantity_like_type<Q>, quantity>
@@ -159,7 +159,7 @@ public:
quantity& operator=(quantity&&) = default; quantity& operator=(quantity&&) = default;
// data access // data access
[[nodiscard]] constexpr rep number() const noexcept { return value_; } [[nodiscard]] constexpr rep number() const noexcept { return number_; }
// member unary operators // member unary operators
[[nodiscard]] constexpr Quantity auto operator+() const [[nodiscard]] constexpr Quantity auto operator+() const
@@ -179,40 +179,40 @@ public:
constexpr quantity& operator++() constexpr quantity& operator++()
requires requires(rep v) { { ++v } -> std::same_as<rep&>; } requires requires(rep v) { { ++v } -> std::same_as<rep&>; }
{ {
++value_; ++number_;
return *this; return *this;
} }
[[nodiscard]] constexpr quantity operator++(int) [[nodiscard]] constexpr quantity operator++(int)
requires requires(rep v) { { v++ } -> std::same_as<rep>; } requires requires(rep v) { { v++ } -> std::same_as<rep>; }
{ {
return quantity(value_++); return quantity(number_++);
} }
constexpr quantity& operator--() constexpr quantity& operator--()
requires requires(rep v) { { --v } -> std::same_as<rep&>; } requires requires(rep v) { { --v } -> std::same_as<rep&>; }
{ {
--value_; --number_;
return *this; return *this;
} }
[[nodiscard]] constexpr quantity operator--(int) [[nodiscard]] constexpr quantity operator--(int)
requires requires(rep v) { { v-- } -> std::same_as<rep>; } requires requires(rep v) { { v-- } -> std::same_as<rep>; }
{ {
return quantity(value_--); return quantity(number_--);
} }
constexpr quantity& operator+=(const quantity& q) constexpr quantity& operator+=(const quantity& q)
requires requires(rep a, rep b) { { a += b } -> std::same_as<rep&>; } requires requires(rep a, rep b) { { a += b } -> std::same_as<rep&>; }
{ {
value_ += q.number(); number_ += q.number();
return *this; return *this;
} }
constexpr quantity& operator-=(const quantity& q) constexpr quantity& operator-=(const quantity& q)
requires requires(rep a, rep b) { { a -= b } -> std::same_as<rep&>; } requires requires(rep a, rep b) { { a -= b } -> std::same_as<rep&>; }
{ {
value_ -= q.number(); number_ -= q.number();
return *this; return *this;
} }
@@ -220,14 +220,14 @@ public:
constexpr quantity& operator*=(const Rep2& rhs) constexpr quantity& operator*=(const Rep2& rhs)
requires requires(rep a, const Rep2 b) { { a *= b } -> std::same_as<rep&>; } requires requires(rep a, const Rep2 b) { { a *= b } -> std::same_as<rep&>; }
{ {
value_ *= rhs; number_ *= rhs;
return *this; return *this;
} }
template<typename Rep2> template<typename Rep2>
constexpr quantity& operator*=(const dimensionless<units::one, Rep2>& rhs) constexpr quantity& operator*=(const dimensionless<units::one, Rep2>& rhs)
requires requires(rep a, const Rep2 b) { { a *= b } -> std::same_as<rep&>; } requires requires(rep a, const Rep2 b) { { a *= b } -> std::same_as<rep&>; }
{ {
value_ *= rhs.number(); number_ *= rhs.number();
return *this; return *this;
} }
@@ -236,7 +236,7 @@ public:
requires requires(rep a, const Rep2 b) { { a /= b } -> std::same_as<rep&>; } requires requires(rep a, const Rep2 b) { { a /= b } -> std::same_as<rep&>; }
{ {
gsl_ExpectsAudit(rhs != quantity_values<Rep2>::zero()); gsl_ExpectsAudit(rhs != quantity_values<Rep2>::zero());
value_ /= rhs; number_ /= rhs;
return *this; return *this;
} }
template<typename Rep2> template<typename Rep2>
@@ -244,7 +244,7 @@ public:
requires requires(rep a, const Rep2 b) { { a /= b } -> std::same_as<rep&>; } requires requires(rep a, const Rep2 b) { { a /= b } -> std::same_as<rep&>; }
{ {
gsl_ExpectsAudit(rhs.number() != quantity_values<Rep2>::zero()); gsl_ExpectsAudit(rhs.number() != quantity_values<Rep2>::zero());
value_ /= rhs.number(); number_ /= rhs.number();
return *this; return *this;
} }
@@ -254,7 +254,7 @@ public:
requires(rep a, const Rep2 b) { { a %= b } -> std::same_as<rep&>; } requires(rep a, const Rep2 b) { { a %= b } -> std::same_as<rep&>; }
{ {
gsl_ExpectsAudit(rhs != quantity_values<Rep2>::zero()); gsl_ExpectsAudit(rhs != quantity_values<Rep2>::zero());
value_ %= rhs; number_ %= rhs;
return *this; return *this;
} }
@@ -264,7 +264,7 @@ public:
requires(rep a, const Rep2 b) { { a %= b } -> std::same_as<rep&>; } requires(rep a, const Rep2 b) { { a %= b } -> std::same_as<rep&>; }
{ {
gsl_ExpectsAudit(rhs.number() != quantity_values<Rep2>::zero()); gsl_ExpectsAudit(rhs.number() != quantity_values<Rep2>::zero());
value_ %= rhs.number(); number_ %= rhs.number();
return *this; return *this;
} }
@@ -273,7 +273,7 @@ public:
requires(rep a, rep b) { { a %= b } -> std::same_as<rep&>; } requires(rep a, rep b) { { a %= b } -> std::same_as<rep&>; }
{ {
gsl_ExpectsAudit(q.number() != quantity_values<rep>::zero()); gsl_ExpectsAudit(q.number() != quantity_values<rep>::zero());
value_ %= q.number(); number_ %= q.number();
return *this; return *this;
} }