/Zc:forScope (Imponi conformità nell'ambito di un ciclo For)
Utilizzato per implementare il comportamento C++ standard per i cicli e percon estensioni Microsoft (/Ze). /Zc:forScope è attiva per impostazione predefinita.
/Zc:forScope[-]
Note
Il comportamento standard prevede che l'inizializzatore di un ciclo for possa uscire dall'ambito dopo il ciclo for. In /Za, /Ze (Disabilita estensioni linguaggio) l'inizializzatore del ciclo for rimane nell'ambito fino alla fine dell'ambito locale.
Il codice riportato di seguito può essere 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 utilizza /Zc:forScope-, verrà visualizzato un avviso, disattivato per impostazione predefinita, in caso una variabile si trovi nell'ambito a causa di una dichiarazione specificata in un ambito precedente. Per dimostrarlo, rimuovere i caratteri // dal codice sopra riportato per dichiarare int i.
È possibile modificare il comportamento di runtime di /Zc:forScope con il pragma conform.
Se si utilizza /Zc:forScope- in un progetto con un file pch esistente, il compilatore ignorerà /Zc:forScope-, generando un avviso al riguardo, e utilizzerà i file pch esistenti. Se si desidera che venga generato un nuovo file pch, utilizzare /Yc (Crea il file di intestazione precompilato).
Per ulteriori informazioni sui problemi di conformità con Visual C++, vedere Compatibility and Compliance Issues in Visual C++.
Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Modifica delle impostazioni di progetto.
Fare clic sulla cartella C/C++.
Fare clic sulla pagina delle proprietà Linguaggio.
Modificare la proprietà Imponi conformità nell'ambito di un ciclo For.
Per impostare l'opzione del compilatore a livello di codice
- Vedere ForceConformanceInForLoopScope.