Condividi tramite


/Zc:forScope (Imponi conformità nell'ambito di un ciclo For)

Permette di implementare il comportamento C++ standard per cicli for con estensioni Microsoft (/Ze). L'opzione /Zc:forScope è abilitata per impostazione predefinita.

/Zc:forScope[-]

Note

Il comportamento standard permette all'inizializzatore del ciclo for di uscire dall'ambito dopo il ciclo for. In /Za, /Ze (Disabilita estensioni linguaggio) l'inizializzatore del ciclo for rimane nell'ambito fino al termine dell'ambito locale.

Il codice seguente sarà compilato in /Ze ma non in /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
}

Se si usa /Zc:forScope-, sarà visualizzato un avviso (disattivato per impostazione predefinita) se una variabile si trova all'interno dell'ambito a causa di una dichiarazione effettuata in un ambito precedente. Per illustrare questo comportamento, rimuovere i caratteri // dal codice precedente per dichiarare int i.

È possibile modificare il comportamento di runtime di /Zc:forScope con il pragma conform.

Se si usa /Zc:forScope- in un progetto con un file con estensione pch esistente, /Zc:forScope- sarà ignorato (con un avviso) e la compilazione continuerà con i file con estensione pch esistenti. Se si vuole che sia generato un nuovo file con estensione pch, usare /Yc (Crea il file di intestazione precompilato).

Per altre informazioni sui problemi di conformità con Visual C++, vedere Comportamento non standard.

Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Utilizzo di proprietà di progetto.

  2. Fare clic sulla cartella C/C++.

  3. Fare clic sulla pagina delle proprietà Linguaggio.

  4. Modificare la proprietà Imponi conformità nell'ambito di un ciclo For.

Per impostare l'opzione del compilatore a livello di codice

Vedere anche

Riferimenti

/Zc (Conformità)

/Za, /Ze (Disabilita estensioni linguaggio)