/Zc:forScope (Imponi conformità nell'ambito di un ciclo For)
Permette di implementare il comportamento C++ standard per cicli for con estensioni Microsoft (/Ze).
Sintassi
/Zc:forScope[-]
Osservazioni:
Il comportamento standard consiste nel consentire all'inizializzatore di un for
ciclo di uscire dall'ambito dopo il for
ciclo. In /Zc:forScope- e /Ze l'inizializzatore for
del ciclo rimane nell'ambito fino al termine dell'ambito locale.
L'opzione /Zc:forScope è attivata per impostazione predefinita. /Zc:forScope non è interessato quando viene specificata l'opzione /permissive- .
L'opzione /Zc:forScope- è deprecata e verrà rimossa in una futura versione. L'uso di /Zc:forScope- genera l'avviso di deprecazione D9035.
Il codice seguente viene compilato in /Ze ma non in /Za:
// zc_forScope.cpp
// compile by using: cl /Zc:forScope- /Za zc_forScope.cpp
// C2065, D9035 expected
int main() {
// Compile by using cl /Zc:forScope- zc_forScope.cpp
// to compile this non-standard code as-is.
// Uncomment the following line to resolve C2065 for /Za.
// 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-, viene visualizzato l'avviso C4288 (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 di esempio 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 PCH esistente, viene generato un avviso, /Zc:forScope- viene ignorato e la compilazione continua con i file PCH esistenti. Se si vuole generare un nuovo file con estensione pch, usare /Yc (Crea file di intestazione precompilato) .
Per altre informazioni sui problemi di conformità in Visual C++, vedere Nonstandard Behavior.
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 Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina delle proprietà Proprietà>di configurazione C/C++>Language.
Modificare la proprietà Imponi conformità nell'ambito di un ciclo For .
Per impostare l'opzione del compilatore a livello di codice
- Vedere ForceConformanceInForLoopScope.
Vedi anche
/Zc (conformità)
/Za, /Ze (disabilita le estensioni del linguaggio)