Annex F (informative) Core undefined behavior [ub]

F.3 [expr]: Expressions [ub.expr]

F.3.1[ub:expr.expr.eval]
Specified in: [expr.pre]

If during the evaluation of an expression, the result is not mathematically defined or not in the range of representable values for its type, the behavior is undefined.
[Example 1: #include <limits> int main() { // Assuming 32-bit int, the range of values is: to 2,147,483,647. int x1 = std::numeric_limits<int>::max() + 1; // undefined behavior, is not representable as an int int x2 = std::numeric_limits<int>::min() / -1; // undefined behavior, is not representable as an int } — end example]