Проблема возникла на другом форуме, и я знал, как ее исправить, но она показала особенность компилятора, свойственного мне. У человека возникла ошибка: "Встроенный оператор не может быть объявлением или помеченной инструкцией", потому что у них было объявление переменной, следующей за оператором if без скобок. Это не было их целью, но они прокомментировали строку кода, непосредственно следуя за оператором if, что сделало объявление переменной фактической строкой кода для выполнения. Во всяком случае, тот фон, который подводит меня к этому.
Следующий код является незаконным
if (true)
int i = 7;
Однако, если вы скопируете это в скобки, все это будет законным.
if (true)
{
int i = 7;
}
Ни одна часть кода не полезна. Но второй - в порядке. Что конкретно объясняет такое поведение?