[#mp_units-utility-operator_slash-0a] = xref:mp_units.adoc[mp_units]::xref:mp_units/utility.adoc[utility]::operator/ :relfileprefix: ../../ :mrdocs: Division operators == Synopses Declared in `<mp‐units/utility/safe_int.h>` Divides an integral scalar by a `safe_int`, checking for overflow. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr xref:mp_units/utility/safe_int-07.adoc[safe_int</* implementation-defined */, ErrorPolicy>] xref:mp_units/utility/operator_slash-02.adoc[operator/]( U lhs, xref:mp_units/utility/safe_int-07.adoc[safe_int] rhs); ---- [.small]#xref:mp_units/utility/operator_slash-02.adoc[_» more..._]# Divides a floating‐point value by a `safe_int`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr auto xref:mp_units/utility/operator_slash-05.adoc[operator/]( U lhs, xref:mp_units/utility/safe_int-07.adoc[safe_int] rhs) requires requires { lhs / static_cast<U>(rhs.value_); }; ---- [.small]#xref:mp_units/utility/operator_slash-05.adoc[_» more..._]# Divides a `safe_int` by an integral scalar, checking for overflow. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr xref:mp_units/utility/safe_int-07.adoc[safe_int</* implementation-defined */, ErrorPolicy>] xref:mp_units/utility/operator_slash-0d.adoc[operator/]( xref:mp_units/utility/safe_int-07.adoc[safe_int] lhs, U rhs); ---- [.small]#xref:mp_units/utility/operator_slash-0d.adoc[_» more..._]# Divides a `safe_int` by a floating‐point value. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr auto xref:mp_units/utility/operator_slash-07.adoc[operator/]( xref:mp_units/utility/safe_int-07.adoc[safe_int] lhs, U rhs) requires requires { static_cast<U>(lhs.value_) / rhs; }; ---- [.small]#xref:mp_units/utility/operator_slash-07.adoc[_» more..._]# Computes the quotient of dividing `lhs` by `rhs.` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr xref:mp_units/utility/safe_int-07.adoc[safe_int</* implementation-defined */, ErrorPolicy>] xref:mp_units/utility/operator_slash-0e.adoc[operator/]( xref:mp_units/utility/safe_int-07.adoc[safe_int] lhs, xref:mp_units/utility/safe_int-07.adoc[safe_int] rhs); ---- [.small]#xref:mp_units/utility/operator_slash-0e.adoc[_» more..._]# Divides a safe_int by a constrained value [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr xref:mp_units/utility/safe_int-07.adoc[safe_int</* implementation-defined */, ErrorPolicy>] xref:mp_units/utility/operator_slash-09.adoc[operator/]( xref:mp_units/utility/safe_int-07.adoc[safe_int] lhs, xref:mp_units/utility/constrained.adoc[constrained<U, CP>] rhs); ---- [.small]#xref:mp_units/utility/operator_slash-09.adoc[_» more..._]# Divides a safe_int by a non‐integral constrained value [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr xref:mp_units/utility/constrained.adoc[constrained<decltype(std::declval<T>() / std::declval<U>()), CP>] xref:mp_units/utility/operator_slash-082.adoc[operator/]( xref:mp_units/utility/safe_int-07.adoc[safe_int] lhs, xref:mp_units/utility/constrained.adoc[constrained<U, CP>] const& rhs); ---- [.small]#xref:mp_units/utility/operator_slash-082.adoc[_» more..._]# Divides a constrained value by a safe_int [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr xref:mp_units/utility/safe_int-07.adoc[safe_int</* implementation-defined */, ErrorPolicy>] xref:mp_units/utility/operator_slash-08b.adoc[operator/]( xref:mp_units/utility/constrained.adoc[constrained<U, CP>] lhs, xref:mp_units/utility/safe_int-07.adoc[safe_int] rhs); ---- [.small]#xref:mp_units/utility/operator_slash-08b.adoc[_» more..._]# Divides a non‐integral constrained value by a safe_int [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr xref:mp_units/utility/constrained.adoc[constrained<decltype(std::declval<U>() / std::declval<T>()), CP>] xref:mp_units/utility/operator_slash-04.adoc[operator/]( xref:mp_units/utility/constrained.adoc[constrained<U, CP>] const& lhs, xref:mp_units/utility/safe_int-07.adoc[safe_int] rhs); ---- [.small]#xref:mp_units/utility/operator_slash-04.adoc[_» more..._]# == Return Value * the quotient, as a `safe_int` of the promoted result type; triggers `ErrorPolicy::on_overflow` on overflow * the quotient of `lhs` and the wrapped value * the quotient of the wrapped value and `rhs` * the result of `lhs / rhs`; triggers `ErrorPolicy::on_overflow` on overflow or division by zero * the wrapped quotient of the underlying values [NOTE] ==== The return value https://en.cppreference.com/cpp/language/attributes/nodiscard[should not be discarded^]. ==== == Template Parameters [cols="1,4"] |=== | Name| Description | *U* | the integral scalar type |=== == Parameters [cols="1,4"] |=== | Name| Description | *lhs* | the integral scalar operand | *rhs* | the `safe_int` to divide by |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#