Multiplication operators

Synopses

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

template<AssociatedUnit U1>
[[nodiscard]]
consteval
/* implementation-defined */
operator*(
    U1 lhs,
    reference rhs);
template<AssociatedUnit U2>
[[nodiscard]]
consteval
/* implementation-defined */
operator*(
    reference lhs,
    U2 rhs);
template<
    Reference R,
    typename Q>
requires Quantity<std::remove_cvref_t<Q>>
constexpr
auto
operator*(
    R lhs,
    Q&& q) = delete;
template<
    Reference R,
    typename Rep>
requires RepresentationOf<std::remove_cvref_t<Rep>, get_quantity_spec(R{})>
constexpr
auto
operator*(
    R lhs,
    Rep&& rhs) = delete;
template<
    typename Q2,
    typename U2>
[[nodiscard]]
consteval
/* implementation-defined */
operator*(
    reference lhs,
    reference<Q2, U2> rhs);
template<
    std::derived_from<quantity> Q,
    typename Value>
requires (!Quantity<Value>) &&
            (!Reference<Value>) && detail::InvokeResultOf<quantity_spec, std::multiplies<>, rep, const Value&>
[[nodiscard]]
constexpr
QuantityOf<quantity_spec> auto
operator*(
    Q const& q,
    Value const& val);
template<
    typename Value,
    std::derived_from<quantity> Q>
requires (!Quantity<Value>) &&
            (!Reference<Value>) && detail::InvokeResultOf<quantity_spec, std::multiplies<>, const Value&, rep>
[[nodiscard]]
constexpr
QuantityOf<quantity_spec> auto
operator*(
    Value const& val,
    Q const& q);
template<
    std::derived_from<quantity> Q,
    auto R2,
    typename Rep2>
requires detail::InvocableQuantities<std::multiplies<>, quantity, quantity<R2, Rep2>>
[[nodiscard]]
constexpr
Quantity auto
operator*(
    Q const& lhs,
    quantity<R2, Rep2> const& rhs);
template<
    typename FwdQ,
    Reference R,
    Quantity Q = std::remove_cvref_t<FwdQ>>
[[nodiscard]]
constexpr
Quantity auto
operator*(
    FwdQ&& q,
    R rhs);
template<
    typename FwdRep,
    Reference R,
    RepresentationOf<get_quantity_spec(R{})> Rep = std::remove_cvref_t<FwdRep>>
requires detail::OffsetUnit<decltype(get_unit(R{}))>
[[deprecated]]
constexpr
auto
operator*(
    FwdRep&& lhs,
    R r);

Multiplication operator

template<
    typename FwdRep,
    Reference R,
    RepresentationOf<get_quantity_spec(R{})> Rep = std::remove_cvref_t<FwdRep>>
requires (!detail::OffsetUnit<decltype(get_unit(R{}))>)
[[nodiscard]]
constexpr
quantity<R{}, Rep>
operator*(
    FwdRep&& lhs,
    R r);

Created with MrDocs