Running następujący kodzdefiniowany (VARIABLE) nie został poprawnie oceniony przez MSVC?
#include <iostream>
#define FOO
#define BAR defined(FOO)
int main() {
#if BAR
std::cout << "BAR enabled!" << std::endl;
#else
std::cout << "BAR disabled!" << std::endl;
#endif
return 0;
}
w Visual Studio wyświetlaczy Bar disabled!
, podczas uruchamiania tego samego kodu w gcc lub clang wyświetlaczy Bar enabled!
.
Czy to błąd w kompilatorze firmy Microsoft? Co jest poprawne zgodnie ze standardem?