View source code
Display the source code in std/experimental/checkedint.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Function std.experimental.checkedint.Checked.opBinary

Defines binary operators +, -, *, /, %, ^^, &, |, ^, <<, >>, and >>>. If Hook defines hookOpBinary, opBinary forwards to Checked!(typeof(hook.hookOpBinary!op(get, rhs)), Hook)(hook.hookOpBinary!op(get, rhs)).

auto opBinary(string op, Rhs) (
  const Rhs rhs
)
if (isIntegral!Rhs || isFloatingPoint!Rhs || is(Rhs == bool));

auto opBinary(string op, Rhs) (
  const Rhs rhs
) const
if (isIntegral!Rhs || isFloatingPoint!Rhs || is(Rhs == bool));

auto opBinary(string op, U, Hook1) (
  Checked!(U,Hook1) rhs
);

auto opBinary(string op, U, Hook1) (
  Checked!(U,Hook1) rhs
) const;

If Hook does not define hookOpBinary but defines onOverflow, opBinary forwards to hook.onOverflow!op(get, rhs) in case an overflow occurs.

If two Checked instances are involved in a binary operation and both define hookOpBinary, the left-hand side hook has priority. If both define onOverflow, a compile-time error occurs.

Authors

License