mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-07 06:04:27 +02:00
fix: QuantityLike
conversions required Q::rep
instead of using one provided by quantity_like_traits
This commit is contained in:
@@ -158,7 +158,7 @@ public:
|
|||||||
quantity<quantity_like_traits<Q>::reference, typename quantity_like_traits<Q>::rep>, quantity>
|
quantity<quantity_like_traits<Q>::reference, typename quantity_like_traits<Q>::rep>, quantity>
|
||||||
constexpr explicit(is_specialization_of<decltype(quantity_like_traits<Q>::to_numerical_value(std::declval<Q>())),
|
constexpr explicit(is_specialization_of<decltype(quantity_like_traits<Q>::to_numerical_value(std::declval<Q>())),
|
||||||
convert_explicitly> ||
|
convert_explicitly> ||
|
||||||
!std::convertible_to<typename Q::rep, Rep>) quantity(const Q& q) :
|
!std::convertible_to<typename quantity_like_traits<Q>::rep, Rep>) quantity(const Q& q) :
|
||||||
quantity(
|
quantity(
|
||||||
::mp_units::quantity{quantity_like_traits<Q>::to_numerical_value(q).value, quantity_like_traits<Q>::reference})
|
::mp_units::quantity{quantity_like_traits<Q>::to_numerical_value(q).value, quantity_like_traits<Q>::reference})
|
||||||
{
|
{
|
||||||
@@ -222,7 +222,7 @@ public:
|
|||||||
[[nodiscard]] explicit(is_specialization_of<decltype(quantity_like_traits<Q>::from_numerical_value(
|
[[nodiscard]] explicit(is_specialization_of<decltype(quantity_like_traits<Q>::from_numerical_value(
|
||||||
numerical_value_is_an_implementation_detail_)),
|
numerical_value_is_an_implementation_detail_)),
|
||||||
convert_explicitly> ||
|
convert_explicitly> ||
|
||||||
!std::convertible_to<Rep, typename Q::rep>) constexpr
|
!std::convertible_to<Rep, typename quantity_like_traits<Q>::rep>) constexpr
|
||||||
operator Q_() const& noexcept(
|
operator Q_() const& noexcept(
|
||||||
noexcept(quantity_like_traits<Q>::from_numerical_value(numerical_value_is_an_implementation_detail_)) &&
|
noexcept(quantity_like_traits<Q>::from_numerical_value(numerical_value_is_an_implementation_detail_)) &&
|
||||||
std::is_nothrow_copy_constructible_v<rep>)
|
std::is_nothrow_copy_constructible_v<rep>)
|
||||||
@@ -236,7 +236,7 @@ public:
|
|||||||
[[nodiscard]] explicit(is_specialization_of<decltype(quantity_like_traits<Q>::from_numerical_value(
|
[[nodiscard]] explicit(is_specialization_of<decltype(quantity_like_traits<Q>::from_numerical_value(
|
||||||
numerical_value_is_an_implementation_detail_)),
|
numerical_value_is_an_implementation_detail_)),
|
||||||
convert_explicitly> ||
|
convert_explicitly> ||
|
||||||
!std::convertible_to<Rep, typename Q::rep>) constexpr
|
!std::convertible_to<Rep, typename quantity_like_traits<Q>::rep>) constexpr
|
||||||
operator Q_() && noexcept(
|
operator Q_() && noexcept(
|
||||||
noexcept(quantity_like_traits<Q>::from_numerical_value(numerical_value_is_an_implementation_detail_)) &&
|
noexcept(quantity_like_traits<Q>::from_numerical_value(numerical_value_is_an_implementation_detail_)) &&
|
||||||
std::is_nothrow_move_constructible_v<rep>)
|
std::is_nothrow_move_constructible_v<rep>)
|
||||||
|
Reference in New Issue
Block a user