Mój kompilator (VC++ 6.0 sp6) najwyraźniej oszalał. W niektórych fragmentach kodu widzę, że "bool mybool = true;
" evalutuje i przypisuje wartość false, i na odwrót - true. Zmiana prawdziwych/fałszywych słów kluczowych na 1/0 sprawia, że działa dobrze. Ten sam kod kompiluje gdzie indziej dobrze, bez zmiany prawdziwych/fałszywych słów kluczowych.C++ "true" i "false" słowa kluczowe nagle nie są prawdziwe lub fałszywe w Visual C++ 6.0
Co mogłoby to spowodować? Moją pierwszą myślą było uszkodzenie pamięci RAM lub dysku, ale wszystko wyszło dobrze. Nie jestem daleko od formatowania dysku i ponownego instalowania wszystkiego, ale jestem przerażony, że nadal widzę te same złe zachowanie.
Czy jest to technicznie możliwe, że makro lub biblioteka połączona gdzieś zepsuć znaczenie "true
" i "false
"?
AKTUALIZACJA: Tajemnica rozwiązana. Flaga zmiennej środowiskowej na moim komputerze została ustawiona na "false", a sposób, w jaki został interpolowany przez jakiś kod preprocesora, przedefiniował słowo kluczowe.
Czy widzisz problem tylko podczas przechodzenia przez debugger, czy faktycznie zmienia on przepływ kontroli? – tsellon
Czy widzisz to pod debuggerem w kompilacji wydania? Optymalizacje mogą spowodować, że zawartość zmiennych będzie nierzetelna. –
Wykonujemy tylko kompilacje debugowania. Widzę te same złe zachowanie zarówno w debugerze, jak i podczas normalnego działania. – kingkongrevenge