Skip to content

Commit 9c884f2

Browse files
committed
fix: explicit constructor for non-convertible types was lost after recent changes
1 parent 1fbb410 commit 9c884f2

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/core/include/mp-units/framework/quantity.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,8 @@ class quantity {
306306
template<auto R2, typename Rep2>
307307
requires detail::QuantityConstructibleFrom<quantity, quantity<R2, Rep2>> && (equivalent(unit, get_unit(R2)))
308308
// NOLINTNEXTLINE(google-explicit-constructor, hicpp-explicit-conversions)
309-
constexpr explicit(!mp_units::implicitly_convertible(get_quantity_spec(R2), quantity_spec) ||
309+
constexpr explicit(!std::convertible_to<Rep2, rep> ||
310+
!mp_units::implicitly_convertible(get_quantity_spec(R2), quantity_spec) ||
310311
!mp_units::implicitly_scalable<get_unit(R2), Rep2, unit, rep>)
311312
quantity(const quantity<R2, Rep2>& q) :
312313
numerical_value_is_an_implementation_detail_(q.numerical_value_in(q.unit))
@@ -316,7 +317,8 @@ class quantity {
316317
template<auto R2, typename Rep2>
317318
requires detail::QuantityConstructibleFrom<quantity, quantity<R2, Rep2>> && (!equivalent(unit, get_unit(R2)))
318319
// NOLINTNEXTLINE(google-explicit-constructor, hicpp-explicit-conversions)
319-
constexpr explicit(!mp_units::implicitly_convertible(get_quantity_spec(R2), quantity_spec) ||
320+
constexpr explicit(!std::convertible_to<Rep2, rep> ||
321+
!mp_units::implicitly_convertible(get_quantity_spec(R2), quantity_spec) ||
320322
!mp_units::implicitly_scalable<get_unit(R2), Rep2, unit, rep>)
321323
quantity(const quantity<R2, Rep2>& q) :
322324
quantity(detail::sudo_cast<quantity>(q))

0 commit comments

Comments
 (0)