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.