refactor: make reference's interface hidden friends

Addresses:
- https://github.com/mpusz/units/pull/261#discussion_r597135187
- https://github.com/mpusz/units/pull/261#discussion_r597152408
This commit is contained in:
Johel Ernesto Guerrero Peña
2021-03-18 22:37:25 +01:00
committed by Mateusz Pusz
parent 234337d310
commit ced4b3bbed
2 changed files with 19 additions and 24 deletions
-12
View File
@@ -404,12 +404,6 @@ template<Quantity Q1, QuantityEquivalentTo<Q1> Q2>
return ret(ret(lhs).count() - ret(rhs).count());
}
template<QuantityValue Rep, typename D, typename U>
[[nodiscard]] constexpr Quantity auto operator*(const Rep& lhs, reference<D, U>)
{
return quantity<D, U, Rep>(lhs);
}
template<Quantity Q1, Quantity Q2>
requires quantity_value_for_<std::multiplies<>, typename Q1::rep, typename Q2::rep>
[[nodiscard]] constexpr Quantity auto operator*(const Q1& lhs, const Q2& rhs)
@@ -417,12 +411,6 @@ template<Quantity Q1, Quantity Q2>
return detail::make_quantity<Q1::reference * Q2::reference>(lhs.count() * rhs.count());
}
template<QuantityValue Rep, typename D, typename U>
[[nodiscard]] constexpr Quantity auto operator/(const Rep& lhs, reference<D, U>)
{
return lhs / quantity<D, U, Rep>::one();
}
template<Quantity Q1, Quantity Q2>
requires quantity_value_for_<std::divides<>, typename Q1::rep, typename Q2::rep>
[[nodiscard]] constexpr Quantity auto operator/(const Q1& lhs, const Q2& rhs)