Why does the most negative int value cause an error about ambiguous function overloads?
This is a very subtle error. What you are seeing is a consequence of there being no negative integer literals in C++. If we look at [lex.icon] we get that a integer-literal, integer-literal decimal-literal integer-suffixopt […] can be a decimal-literal, decimal-literal: nonzero-digit decimal-literal ’ opt digit where digit is [0-9] and nonzero-digit is [1-9] and … Read more