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