Поделиться через


/Zc:forScope (принудительное обеспечение соответствия в области видимости оператора for)

Использовался для реализации стандартного поведения C++ для циклов for с расширениями Майкрософт (/Ze). По умолчанию параметр /Zc:forScope включен.

/Zc:forScope[-]

Заметки

При стандартном поведении инициализатору цикла for позволяется выходить за пределы области после цикла for. При использовании /Za, /Ze (отключить расширения языка) инициализатор цикла for остается в пределах области до завершения локальной области.

Следующий код будет компилироваться при использовании параметра /Ze, но не при использовании /Za.

// zc_forScope.cpp
// compile with: /Zc:forScope- /Za
// C2065 expected
int main() {
   // Uncomment the following line to resolve.
   // int i;
   for (int i =0; i < 1; i++)
      ;
   i = 20;   // i has already gone out of scope under /Za
}

Если используется параметр /Zc:forScope-, то каждый раз, когда переменная будет попадать в область из-за ее объявления в предыдущей области, будет выдаваться предупреждение (оно отключено по умолчанию). Для иллюстрации этого поведения в приведенном выше примере необходимо убрать символы // для объявления int i.

Поведение параметра /Zc:forScope во время выполнения можно изменить с помощью директивы pragma conform.

При использовании параметра /Zc:forScope- в проекте с существующим файлом PCH параметр /Zc:forScope- пропускается (с выводом предупреждения), а компиляция продолжается c использованием существующих файлов PCH. Если требуется создать новый файл PCH, используйте параметр /Yc (создать предварительно скомпилированный заголовочный файл).

Дополнительные сведения о вопросах соответствия, связанных с Visual C++, см. в разделе Нестандартное поведение.

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Работа со свойствами проектов.

  2. Откройте папку C/C++.

  3. Выберите страницу свойств Язык.

  4. Измените свойство Обеспечение согласования видимости переменных, объявленных в заголовке оператора for.

Установка данного параметра компилятора программным способом

См. также

Ссылки

/Zc (соответствие)

/Za, /Ze (отключить расширения языка)