Skip to content

mp_units::utility::operator*

Multiplication operators

Synopses

Declared in <mp-units/utility/cartesian_tensor.h>

Multiplication operator

[[nodiscard]] constexpr safe_int</* implementation-defined */, ErrorPolicy> operator*(safe_int lhs, safe_int rhs);

» more...

Multiplication operator

[[nodiscard]] constexpr polar_vector operator*(Rep const& scalar, polar_vector const& v);

» more...

Multiplication operator

[[nodiscard]] constexpr spherical_vector operator*(Rep const& scalar, spherical_vector const& v);

» more...

Multiplication by an exact scalar (commutative)

[[nodiscard]] constexpr uncertain operator*(auto const& value, uncertain const& rhs);

» more...

Multiplication operator

[[nodiscard]] constexpr polar_vector operator*(polar_vector const& v, Rep const& scalar);

» more...

Multiplication operator

[[nodiscard]] constexpr spherical_vector operator*(spherical_vector const& v, Rep const& scalar);

» more...

Multiplication by an exact scalar

[[nodiscard]] constexpr uncertain operator*(uncertain const& lhs, auto const& value);

» more...

Multiplication of two uncertain values

[[nodiscard]] constexpr uncertain operator*(uncertain const& lhs, uncertain const& rhs);

» more...

Multiplication operator

template<typename U>
  requires(detail::integral<U> && detail::same_sign_v<U, T>)
[[nodiscard]] constexpr safe_int</* implementation-defined */, ErrorPolicy> operator*(U lhs, safe_int rhs);

» more...

template<typename U>
  requires treat_as_floating_point<U>
[[nodiscard]] constexpr auto operator*(U lhs, safe_int rhs)
  requires requires { lhs * static_cast<U>(rhs.value_); };

» more...

Multiplication operator

template<typename U>
  requires(detail::integral<U> && detail::same_sign_v<T, U>)
[[nodiscard]] constexpr safe_int</* implementation-defined */, ErrorPolicy> operator*(safe_int lhs, U rhs);

» more...

template<typename U>
  requires treat_as_floating_point<U>
[[nodiscard]] constexpr auto operator*(safe_int lhs, U rhs)
  requires requires { static_cast<U>(lhs.value_) * rhs; };

» more...

template<Quantity Factor>
[[nodiscard]] constexpr auto operator*(polar_vector const& v, Factor const& f);

» more...

template<Quantity Factor>
[[nodiscard]] constexpr auto operator*(spherical_vector const& v, Factor const& f);

» more...

Multiplication operator

template<typename U, typename CP>
  requires detail::integral<U>
[[nodiscard]] constexpr safe_int</* implementation-defined */, ErrorPolicy> operator*(safe_int lhs,
                                                                                      constrained<U, CP> rhs);

» more...

Multiplication operator

template<typename U, typename CP>
  requires(!std::integral<U>)
[[nodiscard]] constexpr constrained<decltype(std::declval<T>() * std::declval<U>()), CP> operator*(
  safe_int lhs, constrained<U, CP> const& rhs);

» more...

Multiplication operator

template<typename U, typename CP>
  requires detail::integral<U>
[[nodiscard]] constexpr safe_int</* implementation-defined */, ErrorPolicy> operator*(constrained<U, CP> lhs,
                                                                                      safe_int rhs);

» more...

Multiplication operator

template<typename U, typename CP>
  requires(!std::integral<U>)
[[nodiscard]] constexpr constrained<decltype(std::declval<U>() * std::declval<T>()), CP> operator*(
  constrained<U, CP> const& lhs, safe_int rhs);

» more...

Multiplication operator

template<typename T, std::size_t N, typename U>
  requires(!Reference<T>) && (!Quantity<T>) && requires(const T& t, const U& u) { t * u; }
[[nodiscard]] constexpr auto operator*(T const& lhs, cartesian_tensor<U, N> const& rhs);

» more...

Multiplication operator

template<typename T, std::size_t N, typename U>
  requires(!Reference<T>) && (!Quantity<T>) && requires(const T& t, const U& u) { t * u; }
[[nodiscard]] constexpr auto operator*(T const& lhs, cartesian_vector<U, N> const& rhs);

» more...

Multiplication operator

template<typename T, std::size_t N, typename U>
  requires(!Reference<U>) && (!Quantity<U>) && requires(const T& t, const U& u) { t * u; }
[[nodiscard]] constexpr auto operator*(cartesian_tensor<T, N> const& lhs, U const& rhs);

» more...

Multiplication operator

template<typename T, std::size_t N, typename U>
  requires(!Reference<U>) && (!Quantity<U>) && requires(const T& t, const U& u) { t * u; }
[[nodiscard]] constexpr auto operator*(cartesian_vector<T, N> const& lhs, U const& rhs);

» more...

Return Value

Note

The return value should not be discarded.