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 overflowOnAdd
checks if an addition of two values would
overflow. Next, there is an addition operator infix +?
that
performs overflow checking and returns a numOption
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.