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; };
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; };
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);
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);
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);
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);
Subtraction operator
template<
PointOrigin PO1,
auto R2,
auto PO2,
typename Rep2>
requires QuantityPointOf<quantity_point<R2, PO2, Rep2>, PO1{}> &&
ReferenceOf<MP_UNITS_REMOVE_CONST(decltype(R2)), get_quantity_spec(PO1{})>
[[nodiscard]]
constexpr
Quantity auto
operator‐(
PO1 po,
quantity_point<R2, PO2, Rep2> const& qp);
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);
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); };
Subtraction operator
template<
auto R1,
auto PO1,
typename Rep1,
PointOrigin PO2>
requires QuantityPointOf<quantity_point<R1, PO1, Rep1>, PO2{}> &&
ReferenceOf<MP_UNITS_REMOVE_CONST(decltype(R1)), get_quantity_spec(PO2{})>
[[nodiscard]]
constexpr
Quantity auto
operator‐(
quantity_point<R1, PO1, Rep1> const& qp,
PO2 po);
Subtraction operator
template<
auto R1,
auto PO1,
typename Rep1,
auto R2,
typename Rep2>
requires ReferenceOf<MP_UNITS_REMOVE_CONST(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; };
Return Value
|
Note
|
The return value should not be discarded. |
Created with MrDocs