Skip to content

mp_units::operator+

Addition operators

Synopses

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

Addition operator

template<PointOrigin PO, typename FwdQ, Quantity Q = std::remove_cvref_t<FwdQ>>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator+(PO po, FwdQ&& q);

» more...

Addition operator

template<PointOrigin PO, typename FwdQ, Quantity Q = std::remove_cvref_t<FwdQ>>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator+(PO po, FwdQ&& q);

» more...

Addition operator

template<PointOrigin PO, typename FwdQ, Quantity Q = std::remove_cvref_t<FwdQ>>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator+(PO po, FwdQ&& q);

» more...

Addition operator

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

» more...

Addition operator

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

» more...

Addition operator

template<typename FwdQ, PointOrigin PO, Quantity Q = std::remove_cvref_t<FwdQ>>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator+(FwdQ&& q, PO po);

» more...

Addition operator

template<typename FwdQ, PointOrigin PO, Quantity Q = std::remove_cvref_t<FwdQ>>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator+(FwdQ&& q, PO po);

» more...

Addition operator

template<typename FwdQ, PointOrigin PO, Quantity Q = std::remove_cvref_t<FwdQ>>
  requires PointOriginFor<PO, Q::quantity_spec>
[[nodiscard]] constexpr QuantityPoint auto operator+(FwdQ&& q, PO po);

» more...

Addition operator

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

» more...

Addition operator

template<std::size_t N, std::size_t M, std::size_t N2, std::size_t M2>
[[nodiscard]] constexpr symbol_text<N + N2, M + M2> operator+(symbol_text<N, M> const& lhs,
                                                              symbol_text<N2, M2> const& rhs);

» more...

Addition operator

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

» more...

Addition 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.