[#mp_units-operator_plus-0ad] = xref:mp_units.adoc[mp_units]::operator+ :relfileprefix: ../ :mrdocs: Addition operators == Synopses Declared in `<mp‐units/ext/fixed_string.h>` Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename CharT, std::size_t N> [[nodiscard]] constexpr xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, 1 + N>] xref:mp_units/operator_plus-04.adoc[operator+]( CharT const lhs, xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N>] const& rhs) noexcept; ---- [.small]#xref:mp_units/operator_plus-04.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename CharT, std::size_t N> [[nodiscard]] constexpr xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N + 1>] xref:mp_units/operator_plus-09.adoc[operator+]( xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N>] const& lhs, CharT rhs) noexcept; ---- [.small]#xref:mp_units/operator_plus-09.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< xref:mp_units/PointOrigin.adoc[PointOrigin] PO, typename FwdQ, xref:mp_units/Quantity-0c.adoc[Quantity] Q = std::remove_cvref_t<FwdQ>> requires PointOriginFor<PO, Q::quantity_spec> [[nodiscard]] constexpr xref:mp_units/QuantityPoint.adoc[QuantityPoint] auto xref:mp_units/operator_plus-0b.adoc[operator+]( PO po, FwdQ&& q); ---- [.small]#xref:mp_units/operator_plus-0b.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< xref:mp_units/PointOrigin.adoc[PointOrigin] PO, typename FwdQ, xref:mp_units/Quantity-0c.adoc[Quantity] Q = std::remove_cvref_t<FwdQ>> requires PointOriginFor<PO, Q::quantity_spec> [[nodiscard]] constexpr xref:mp_units/QuantityPoint.adoc[QuantityPoint] auto xref:mp_units/operator_plus-00.adoc[operator+]( PO po, FwdQ&& q); ---- [.small]#xref:mp_units/operator_plus-00.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto R1, typename Rep1, xref:mp_units/RepresentationOf.adoc[RepresentationOf<get_quantity_spec(R1)>] Value> requires ImplicitFromNumber<R1> && InvokeResultOf<get_quantity_spec(R1), std::plus<>, Rep1, const Value&> [[nodiscard]] constexpr xref:mp_units/Quantity-0c.adoc[Quantity] auto xref:mp_units/operator_plus-0ab.adoc[operator+]( Value const& lhs, xref:mp_units/quantity-01.adoc[quantity<R1, Rep1>] const& rhs); ---- [.small]#xref:mp_units/operator_plus-0ab.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename CharT, std::size_t N, std::size_t N2> [[nodiscard]] constexpr xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N + N2>] xref:mp_units/operator_plus-07f.adoc[operator+]( xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N>] const& lhs, xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N2>] const& rhs) noexcept; ---- [.small]#xref:mp_units/operator_plus-07f.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename CharT, std::size_t N, std::size_t N2> [[nodiscard]] consteval xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N + N2 ‐ 1>] xref:mp_units/operator_plus-068.adoc[operator+]( xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N>] const& lhs, CharT const(& rhs)[]) noexcept; ---- [.small]#xref:mp_units/operator_plus-068.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto R1, typename Rep1, xref:mp_units/RepresentationOf.adoc[RepresentationOf<get_quantity_spec(R1)>] Value> requires ImplicitFromNumber<R1> && InvokeResultOf<get_quantity_spec(R1), std::plus<>, Rep1, const Value&> [[nodiscard]] constexpr xref:mp_units/Quantity-0c.adoc[Quantity] auto xref:mp_units/operator_plus-024d.adoc[operator+]( xref:mp_units/quantity-01.adoc[quantity<R1, Rep1>] const& lhs, Value const& rhs); ---- [.small]#xref:mp_units/operator_plus-024d.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename CharT, std::size_t N, std::size_t N1> [[nodiscard]] consteval xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N1 + N ‐ 1>] xref:mp_units/operator_plus-06d.adoc[operator+]( CharT const(& lhs)[], xref:mp_units/basic_fixed_string-08.adoc[basic_fixed_string<CharT, N>] const& rhs) noexcept; ---- [.small]#xref:mp_units/operator_plus-06d.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename FwdQ, xref:mp_units/PointOrigin.adoc[PointOrigin] PO, xref:mp_units/Quantity-0c.adoc[Quantity] Q = std::remove_cvref_t<FwdQ>> requires PointOriginFor<PO, Q::quantity_spec> [[nodiscard]] constexpr xref:mp_units/QuantityPoint.adoc[QuantityPoint] auto xref:mp_units/operator_plus-0a0.adoc[operator+]( FwdQ&& q, PO po); ---- [.small]#xref:mp_units/operator_plus-0a0.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename FwdQ, xref:mp_units/PointOrigin.adoc[PointOrigin] PO, xref:mp_units/Quantity-0c.adoc[Quantity] Q = std::remove_cvref_t<FwdQ>> requires PointOriginFor<PO, Q::quantity_spec> [[nodiscard]] constexpr xref:mp_units/QuantityPoint.adoc[QuantityPoint] auto xref:mp_units/operator_plus-03.adoc[operator+]( FwdQ&& q, PO po); ---- [.small]#xref:mp_units/operator_plus-03.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto R1, typename Rep1, auto R2, typename Rep2> requires CommonlyInvocableQuantities<std::plus<>, quantity<R1, Rep1>, quantity<R2, Rep2>> [[nodiscard]] constexpr xref:mp_units/Quantity-0c.adoc[Quantity] auto xref:mp_units/operator_plus-0c.adoc[operator+]( xref:mp_units/quantity-01.adoc[quantity<R1, Rep1>] const& lhs, xref:mp_units/quantity-01.adoc[quantity<R2, Rep2>] const& rhs); ---- [.small]#xref:mp_units/operator_plus-0c.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::size_t N, std::size_t M, std::size_t N2, std::size_t M2> [[nodiscard]] constexpr xref:mp_units/symbol_text-032.adoc[symbol_text<N + N2, M + M2>] xref:mp_units/operator_plus-01.adoc[operator+]( xref:mp_units/symbol_text-032.adoc[symbol_text<N, M>] const& lhs, xref:mp_units/symbol_text-032.adoc[symbol_text<N2, M2>] const& rhs); ---- [.small]#xref:mp_units/operator_plus-01.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto R1, typename Rep1, auto R2, auto PO2, typename Rep2> requires ReferenceOf<MP_UNITS_REMOVE_CONST(decltype(R1)), get_quantity_spec(PO2)> [[nodiscard]] constexpr xref:mp_units/QuantityPoint.adoc[QuantityPoint] auto xref:mp_units/operator_plus-076.adoc[operator+]( xref:mp_units/quantity-01.adoc[quantity<R1, Rep1>] const& q, xref:mp_units/quantity_point-08.adoc[quantity_point<R2, PO2, Rep2>] const& qp) requires requires { q + qp.quantity_ref_from(PO2); }; ---- [.small]#xref:mp_units/operator_plus-076.adoc[_» more..._]# Addition operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- 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 xref:mp_units/QuantityPoint.adoc[QuantityPoint] auto xref:mp_units/operator_plus-0241.adoc[operator+]( xref:mp_units/quantity_point-08.adoc[quantity_point<R1, PO1, Rep1>] const& qp, xref:mp_units/quantity-01.adoc[quantity<R2, Rep2>] const& q) requires requires { qp.quantity_ref_from(PO1) + q; }; ---- [.small]#xref:mp_units/operator_plus-0241.adoc[_» more..._]# == Return Value [NOTE] ==== The return value https://en.cppreference.com/cpp/language/attributes/nodiscard[should not be discarded^]. ==== [.small]#Created with https://www.mrdocs.com[MrDocs]#