fix: RepSafeConstructibleFrom now works correctly with Arg being rvalue reference

This commit is contained in:
Mateusz Pusz
2023-06-12 11:38:36 +03:00
parent bb158a69e9
commit 30b0a0c5df

View File

@@ -47,9 +47,9 @@ template<QuantityLike Q>
using quantity_like_type = quantity<quantity_like_traits<Q>::reference, typename quantity_like_traits<Q>::rep>;
template<typename T, typename Arg, auto U>
concept RepSafeConstructibleFrom =
Unit<std::remove_const_t<decltype(U)>> && std::constructible_from<T, Arg> &&
(treat_as_floating_point<T> || (!treat_as_floating_point<Arg> && is_rational(get_canonical_unit(U).mag)));
concept RepSafeConstructibleFrom = Unit<std::remove_const_t<decltype(U)>> && std::constructible_from<T, Arg> &&
(treat_as_floating_point<T> || (!treat_as_floating_point<std::remove_cvref_t<Arg>> &&
is_rational(get_canonical_unit(U).mag)));
template<auto UFrom, auto UTo>
concept IntegralConversionFactor = Unit<decltype(UFrom)> && Unit<decltype(UTo)> &&