определен (VARIABLE) неправильно оценен 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;
}

вVisual Studio дисплеиBar disabled!во время выполнения того же кода вНКУ или желязг дисплеиBar enabled!.

Это ошибка в компиляторе Microsoft? Что правильно по стандарту?

Ответы на вопрос(1)

Ваш ответ на вопрос