In C#, I understand that the following code will fail because of integer overflow:
int max = int.MaxValue + 1; // error CS0220: The operation overflows at compile time in checked mode
But then, why the following C# code does not fail at compile time and just warp around?
int max = int.MaxValue;
int res = max + 1; // -2147483648