Idiom # 85: Check if integer addition will overflow
Code
For all integers with wrap-around semantics (i.e. all the standard types i32,
u64, etc.), there are two ways to check for overflow on addition. First, the
predicate overflow_on_add
checks if an addition of two values would
overflow. Next, there is an addition operator infix +?
that
performs overflow checking and returns an option
that can be
checked afterwards.
Note that infix +
would result in a runtime error in case of an
overflow if debug checks are enabled. If overflow semantics are desired,
operator infix +°
has to be used.