test: compile quantity_point_kind_test.cpp

This commit is contained in:
Johel Ernesto Guerrero Peña
2021-02-21 17:16:57 -04:00
committed by Mateusz Pusz
parent 0b961dc71c
commit 6a43e10fe6
2 changed files with 8 additions and 8 deletions

View File

@@ -346,10 +346,10 @@ template<Kind ToK, Unit ToU, typename K, typename U, typename Rep>
*/
template<typename CastSpec, typename PK, typename U, typename Rep>
[[nodiscard]] constexpr QuantityPointKind auto quantity_point_kind_cast(const quantity_point_kind<PK, U, Rep>& qpk)
requires (is_specialization_of<CastSpec, quantity_point_kind> &&
requires { quantity_kind_cast<typename CastSpec::quantity_kind_type>(qpk.relative()); }) ||
(PointKind<CastSpec> && UnitOf<U, typename CastSpec::dimension>) ||
requires { quantity_kind_cast<CastSpec>(qpk.relative()); }
requires requires { requires is_specialization_of<CastSpec, quantity_point_kind>;
requires requires { quantity_kind_cast<typename CastSpec::quantity_kind_type>(qpk.relative()); }; } ||
requires { requires PointKind<CastSpec> && UnitOf<U, typename CastSpec::dimension>; } ||
requires { requires requires { quantity_kind_cast<CastSpec>(qpk.relative()); }; }
{
if constexpr (is_specialization_of<CastSpec, quantity_point_kind>)
return CastSpec(quantity_kind_cast<typename CastSpec::quantity_kind_type>(qpk.relative()));

View File

@@ -141,27 +141,27 @@ public:
template<QuantityKind QK>
[[nodiscard]] friend constexpr QuantityPointKind auto operator+(const quantity_point_kind& lhs, const QK& rhs)
requires requires { lhs.relative() + rhs; }
requires requires(quantity_kind_type qk) { qk + rhs; }
{
return units::quantity_point_kind(lhs.relative() + rhs);
}
template<QuantityKind QK>
[[nodiscard]] friend constexpr QuantityPointKind auto operator+(const QK& lhs, const quantity_point_kind& rhs)
requires requires { lhs + rhs.relative(); }
requires requires(quantity_kind_type qk) { lhs + qk; }
{
return units::quantity_point_kind(lhs + rhs.relative());
}
template<QuantityKind QK>
[[nodiscard]] friend constexpr QuantityPointKind auto operator-(const quantity_point_kind& lhs, const QK& rhs)
requires requires { lhs.relative() - rhs; }
requires requires(quantity_kind_type qk) { qk - rhs; }
{
return units::quantity_point_kind(lhs.relative() - rhs);
}
[[nodiscard]] friend constexpr QuantityKind auto operator-(const quantity_point_kind& lhs, const quantity_point_kind& rhs)
requires requires { lhs.relative() - rhs.relative(); }
requires requires(quantity_kind_type qk) { qk - qk; }
{
return lhs.relative() - rhs.relative();
}