Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo articolo
Quando si specifica l'opzione /Zc:referenceBinding , il compilatore non consente a un riferimento lvalue non const di eseguire l'associazione a un oggetto temporaneo.
/Zc:referenceBinding[-]
Se si specifica /Zc:referenceBinding , il compilatore segue la sezione 8.5.3 dello standard C++11: non consente espressioni che associano un tipo definito dall'utente temporaneo a un riferimento lvalue non const. Per impostazione predefinita, o se viene specificato /Zc:referenceBinding, il compilatore consente tali espressioni come estensione Microsoft, ma viene generato un avviso di livello 4. Per la sicurezza del codice, la portabilità e la conformità, è consigliabile usare /Zc:referenceBinding.
L'opzione /Zc:referenceBinding è disattivata per impostazione predefinita. L'opzione del compilatore /permissive- imposta in modo implicito questa opzione, ma può essere sottoposta a override usando /Zc:referenceBinding-.
Questo esempio mostra l'estensione Microsoft che consente di associare un tipo temporaneo di un tipo definito dall'utente a un riferimento lvalue non const.
// zcreferencebinding.cpp
struct S {
};
void f(S&) {
}
S g() {
return S{};
}
int main() {
S& s = g(); // warning C4239 at /W4
const S& cs = g(); // okay, bound to const ref
f(g()); // Extension: error C2664 only if /Zc:referenceBinding
}
Per altre informazioni sui problemi di conformità in Visual C++, vedere Nonstandard Behavior.
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++>Riga di comando.
Modificare la proprietà Opzioni aggiuntive per includere /Zc:referenceBinding e quindi scegliere OK.
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC
/Zc (conformità)