Следующая если условия компиляции в Visual Studio C++:C++ статические и нестатическая объявление переменной, если условие
if(int x = 5) { std::cout << x; } 1
и
if(static int x = 5) { std::cout << x; } 2
С другой стороны, гну компилятор только компилирует первый один. От тестирования кажется, что область действия переменной находится только в условии if.
Однако, поскольку Visual Studio компилирует обе версии, мне было интересно, есть ли какие-либо отличия?
Вы имеете в виду грамматику C++ 98, код действителен. – user657267
Вопрос не указан в версии, но мой ответ - полезное замечание, чтобы выяснить, где возникает проблема. – deepmax