Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn die Option "/Zc:referenceBinding " angegeben ist, lässt der Compiler keinen Nichtkonst-Lvalue-Verweis für die Bindung an einen temporären Wert zu.
Syntax
/Zc:referenceBinding[-]
Hinweise
Wenn /Zc:referenceBinding angegeben ist, folgt der Compiler Abschnitt 8.5.3 des C++11-Standards: Es werden keine Ausdrücke zugelassen, die einen benutzerdefinierten Typ vorübergehend an einen nicht-const lvalue-Verweis binden. Standardmäßig oder wenn /Zc:referenceBinding- angegeben ist, lässt der Compiler solche Ausdrücke wie eine Microsoft-Erweiterung zu, aber eine Warnung der Ebene 4 wird ausgegeben. Für Codesicherheit, Portabilität und Konformität empfehlen wir die Verwendung von /Zc:referenceBinding.
Die Option "/Zc:referenceBinding " ist standardmäßig deaktiviert. Die Option "/permissive-compiler " legt diese Option implizit fest, kann jedoch mithilfe von /Zc:referenceBinding-überschrieben werden.
Beispiel
In diesem Beispiel wird die Microsoft-Erweiterung gezeigt, mit der ein temporärer benutzerdefinierter Typ an einen Nichtkonst-Lvalue-Verweis gebunden werden kann.
// 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
}
Weitere Informationen über Konformitätsprobleme in Visual C++ finden Sie unter Nonstandard Behavior.
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).
Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.
Ändern Sie die Eigenschaft "Zusätzliche Optionen", um "/Zc:referenceBinding" einzuschließen, und wählen Sie dann "OK" aus.
Siehe auch
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile
/Zc (Übereinstimmung)