definido (VARIABLE) no evaluado correctamente por MSVC?
Ejecutando el siguiente código
#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;
}
enEstudio visual muestraBar disabled!
, mientras ejecuta el mismo código engcc osonido metálico muestraBar enabled!
.
¿Es esto un error en el compilador de Microsoft? ¿Qué es correcto según el estándar?