Skip to content

mp_units::operator-

Subtraction operators

Synopses

Declared in <mp-units/framework/quantity.h>

Subtraction operator

template<PointOrigin PO, Quantity Q>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator-(PO po, Q const& q)
  requires requires { -q; };

» more...

Subtraction operator

template<PointOrigin PO, Quantity Q>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator-(PO po, Q const& q)
  requires requires { -q; };

» more...

Subtraction operator

template<PointOrigin PO, Quantity Q>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator-(PO po, Q const& q)
  requires requires { -q; };

» more...

Subtraction operator

template<PointOrigin PO1,
         /* implementation-defined */ PO2>
  requires(PointOriginFor<PO2, get_quantity_spec(PO1{})> || PointOriginFor<PO1, get_quantity_spec(PO2{})>) &&
          (is_derived_from_specialization_of_v<PO1, relative_point_origin> ||
           is_derived_from_specialization_of_v<PO2, relative_point_origin>)
[[nodiscard]] constexpr Quantity auto operator-(PO1 lhs, PO2 rhs);

» more...

Subtraction operator

template<PointOrigin PO1,
         /* implementation-defined */ PO2>
  requires(PointOriginFor<PO2, get_quantity_spec(PO1{})> || PointOriginFor<PO1, get_quantity_spec(PO2{})>) &&
          (is_derived_from_specialization_of_v<PO1, relative_point_origin> ||
           is_derived_from_specialization_of_v<PO2, relative_point_origin>)
[[nodiscard]] constexpr Quantity auto operator-(PO1 lhs, PO2 rhs);

» more...

Subtraction operator

template<PointOrigin PO1,
         /* implementation-defined */ PO2>
  requires(PointOriginFor<PO2, get_quantity_spec(PO1{})> || PointOriginFor<PO1, get_quantity_spec(PO2{})>) &&
          (is_derived_from_specialization_of_v<PO1, relative_point_origin> ||
           is_derived_from_specialization_of_v<PO2, relative_point_origin>)
[[nodiscard]] constexpr Quantity auto operator-(PO1 lhs, PO2 rhs);

» more...

Subtraction operator

template<auto R1, typename Rep1, RepresentationOf<get_quantity_spec(R1)> Value>
  requires ImplicitFromNumber<R1> && InvokeResultOf<get_quantity_spec(R1), std::minus<>, Rep1, const Value&>
[[nodiscard]] constexpr Quantity auto operator-(Value const& lhs, quantity<R1, Rep1> const& rhs);

» more...

Subtraction operator

template<auto R1, typename Rep1, RepresentationOf<get_quantity_spec(R1)> Value>
  requires ImplicitFromNumber<R1> && InvokeResultOf<get_quantity_spec(R1), std::minus<>, Rep1, const Value&>
[[nodiscard]] constexpr Quantity auto operator-(quantity<R1, Rep1> const& lhs, Value const& rhs);

» more...

Subtraction operator

template<PointOrigin PO1, auto R2, auto PO2, typename Rep2>
  requires QuantityPointOf<quantity_point<R2, PO2, Rep2>, PO1{}> &&
           ReferenceOf<MP_UNITS_NTTP_HACK(decltype(R2)), get_quantity_spec(PO1{})>
[[nodiscard]] constexpr Quantity auto operator-(PO1 po, quantity_point<R2, PO2, Rep2> const& qp);

» more...

Subtraction operator

template<auto R1, typename Rep1, auto R2, typename Rep2>
  requires CommonlyInvocableQuantities<std::minus<>, quantity<R1, Rep1>, quantity<R2, Rep2>>
[[nodiscard]] constexpr Quantity auto operator-(quantity<R1, Rep1> const& lhs, quantity<R2, Rep2> const& rhs);

» more...

Subtraction operator

template<auto R1, auto PO1, typename Rep1, QuantityPointOf<mp_units::detail::get_absolute_point_origin(PO1)> QP2>
[[nodiscard]] constexpr Quantity auto operator-(quantity_point<R1, PO1, Rep1> const& lhs, QP2 const& rhs)
  requires requires { lhs.quantity_ref_from(PO1) - rhs.quantity_ref_from(QP2::point_origin); };

» more...

Subtraction operator

template<auto R1, auto PO1, typename Rep1, PointOrigin PO2>
  requires QuantityPointOf<quantity_point<R1, PO1, Rep1>, PO2{}> &&
           ReferenceOf<MP_UNITS_NTTP_HACK(decltype(R1)), get_quantity_spec(PO2{})>
[[nodiscard]] constexpr Quantity auto operator-(quantity_point<R1, PO1, Rep1> const& qp, PO2 po);

» more...

Subtraction operator

template<auto R1, auto PO1, typename Rep1, auto R2, typename Rep2>
  requires ReferenceOf<MP_UNITS_NTTP_HACK(decltype(R2)), get_quantity_spec(PO1)>
[[nodiscard]] constexpr QuantityPoint auto operator-(quantity_point<R1, PO1, Rep1> const& qp,
                                                     quantity<R2, Rep2> const& q)
  requires requires { qp.quantity_ref_from(PO1) - q; };

» more...

Return Value

Note

The return value should not be discarded.