Mi compilador (VC++ 6.0 sp6) aparentemente se ha vuelto loco. En ciertos fragmentos de código veo que 'bool mybool = true;
' evalúa y asigna falso y viceversa para verdadero. Cambiar las palabras clave verdadero/falso a 1/0 lo hace funcionar bien. El mismo código se compila en cualquier otro lugar sin cambiar las palabras clave verdadero/falso.C++ palabras clave 'verdadero' y 'falso' de repente no es verdadero o falso en Visual C++ 6.0
¿Qué podría causar esto? Lo primero que pensé fue en la corrupción de la RAM o el disco, pero todo salió bien. No estoy lejos de reformatear mi disco y volver a instalar todo, pero estoy aterrado de que todavía vea la misma mala conducta.
¿Es técnicamente posible que una macro o una biblioteca enlazada en algún lugar arruine el significado de 'true
' y 'false
'?
ACTUALIZACIÓN: Misterio resuelto. Un marcador de variable de entorno en mi máquina se configuró en 'falso' y la forma en que esto fue interpolado por algún código de preprocesador redefinió la palabra clave.
¿Solo ve el problema al pasar por el depurador o realmente cambia el flujo de control? – tsellon
¿Está viendo esto debajo del depurador en una compilación de lanzamiento? Las optimizaciones pueden hacer que los contenidos de las variables sean notoriamente poco confiables. –
Solo hacemos compilaciones de depuración. Veo la misma mala conducta tanto en el depurador como en el funcionamiento normal. – kingkongrevenge