From 03a417196a4b2b26756b414a6fe85406ca9b72c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johel=20Ernesto=20Guerrero=20Pe=C3=B1a?= Date: Sun, 21 Feb 2021 13:33:17 -0400 Subject: [PATCH] test: compile quantity(_kind)_test.cpp with downcasting on --- src/include/units/quantity_cast.h | 8 ++++---- src/include/units/quantity_kind.h | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/include/units/quantity_cast.h b/src/include/units/quantity_cast.h index 06b8a1ca..b3195e37 100644 --- a/src/include/units/quantity_cast.h +++ b/src/include/units/quantity_cast.h @@ -287,10 +287,10 @@ template */ template [[nodiscard]] constexpr QuantityKind auto quantity_kind_cast(const quantity_kind& qk) - requires (is_specialization_of && - requires { quantity_cast(qk.common()); }) || - (Kind && UnitOf) || - requires { quantity_cast(qk.common()); } + requires requires { requires is_specialization_of; + requires requires { quantity_cast(qk.common()); }; } || + requires { requires Kind; requires UnitOf; } || + requires { requires requires { quantity_cast(qk.common()); }; } { if constexpr (is_specialization_of) return CastSpec(quantity_cast(qk.common())); diff --git a/src/include/units/quantity_kind.h b/src/include/units/quantity_kind.h index 2e40d978..874a0552 100644 --- a/src/include/units/quantity_kind.h +++ b/src/include/units/quantity_kind.h @@ -241,21 +241,21 @@ public: // Below friend functions are to be found via argument-dependent lookup only template [[nodiscard]] friend constexpr QuantityKind auto operator*(const quantity_kind& qk, const Value& v) - requires requires { { qk.common() * v } -> Quantity; } + requires requires(quantity_type q) { { q * v } -> Quantity; } { return detail::make_quantity_kind(qk.common() * v); } template [[nodiscard]] friend constexpr QuantityKind auto operator*(const Value& v, const quantity_kind& qk) - requires requires { { v * qk.common() } -> Quantity; } + requires requires(quantity_type q) { { v * q } -> Quantity; } { return detail::make_quantity_kind(v * qk.common()); } template [[nodiscard]] friend constexpr QuantityKind auto operator/(const quantity_kind& qk, const Value& v) - requires requires { { qk.common() / v } -> Quantity; } + requires requires(quantity_type q) { { q / v } -> Quantity; } { gsl_ExpectsAudit(v != quantity_values::zero()); return detail::make_quantity_kind(qk.common() / v); @@ -263,7 +263,7 @@ public: template [[nodiscard]] friend constexpr QuantityKind auto operator/(const Value& v, const quantity_kind& qk) - requires requires { { v / qk.common() } -> Quantity; } + requires requires(quantity_type q) { { v / q } -> Quantity; } { gsl_ExpectsAudit(qk.common().count() != quantity_values::zero()); return detail::downcasted_kind(v / qk.common()); @@ -271,7 +271,7 @@ public: template [[nodiscard]] friend constexpr QuantityKind auto operator%(const quantity_kind& qk, const Value& v) - requires requires { qk.common() % v; } + requires requires(quantity_type q) { q % v; } { gsl_ExpectsAudit(v != quantity_values::zero()); return detail::make_quantity_kind(qk.common() % v);