Visual Studio 2015 - Advertencia del compilador (nivel 2) C4146

Tengo la siguiente línea en mi código

signed int test_case= -2147483648;

que genera el error:

C4146 operador unario menos aplicado al tipo sin signo, el resultado sigue sin firmar

pero esto todavía está con el rango de datos del tipo entero con signo:

__int32 firmado, firmado int, int –2,147,483,648 a 2,147,483,647

Lo extraño es asignarlo comofirmado mucho da este mismo error, es decir

signed long test_case= -2147483648;

Los cambios a continuación compilan OK:

signed int test_case= -2147483647;

signed int test_case= 2147483649;

signed long test_case= -214748364800;
¿Alguien ha visto este problema con el compilador de Visual Studio 2015?¿Cómo está definiendo los tipos de datos?¿Cómo se verifica el rango?¿Por qué parece ignorar la asignación "firmada"?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta