mp_units::utility::operator-

Unary minus operators

Synopses

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

Negates the wrapped value

[[nodiscard]]
constexpr
constrained<decltype(-std::declval<T>()), ErrorPolicy>
operator-(constrained const& x);
» more...

Subtracts a safe_int from an integral scalar, checking for overflow.

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

Subtracts a safe_int from a floating-point value.

[[nodiscard]]
constexpr
auto
operator-(
    U lhs,
    safe_int rhs)
requires requires { lhs - static_cast<U>(rhs.value_); };
» more...

Subtracts an integral scalar from a safe_int, checking for overflow.

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

Subtracts a floating-point value from a safe_int.

[[nodiscard]]
constexpr
auto
operator-(
    safe_int lhs,
    U rhs)
requires requires { static_cast<U>(lhs.value_) - rhs; };
» more...

Computes the difference of lhs and rhs.

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

Subtracts a constrained value from a safe_int

[[nodiscard]]
constexpr
safe_int</* implementation-defined */, ErrorPolicy>
operator-(
    safe_int lhs,
    constrained<U, CP> rhs);
» more...

Subtracts a non-integral constrained value from a safe_int

[[nodiscard]]
constexpr
constrained<decltype(std::declval<T>() - std::declval<U>()), CP>
operator-(
    safe_int lhs,
    constrained<U, CP> const& rhs);
» more...

Subtracts a safe_int from a constrained value

[[nodiscard]]
constexpr
safe_int</* implementation-defined */, ErrorPolicy>
operator-(
    constrained<U, CP> lhs,
    safe_int rhs);
» more...

Subtracts a safe_int from a non-integral constrained value

[[nodiscard]]
constexpr
constrained<decltype(std::declval<U>() - std::declval<T>()), CP>
operator-(
    constrained<U, CP> const& lhs,
    safe_int rhs);
» more...

Return Value

  • the wrapped result of negating x
  • the difference, as a safe_int of the promoted result type; triggers ErrorPolicy::on_overflow on overflow
  • the difference between lhs and the wrapped value
  • the difference between the wrapped value and rhs
  • the result of lhs - rhs; triggers ErrorPolicy::on_overflow on overflow
  • the wrapped difference of the underlying values

NOTE

The return value should not be discarded.

Template Parameters

NameDescription
Uthe integral scalar type

Parameters

NameDescription
xthe wrapped value to negate
lhsthe integral scalar operand
rhsthe safe_int to subtract