/Zc:hiddenFriend
(Standard-C++-Regeln für ausgeblendete Freunde erzwingen)
Gibt an, dass der Compiler der C++-Standardbehandlung von ausgeblendeten Freundfunktionen oder Funktionsvorlagen entspricht.
Syntax
/Zc:hiddenFriend
[-
]
Hinweise
Die /Zc:hiddenFriend
Option aktiviert eine Teilmenge des /permissive-
Optionsverhaltens. Er teilt dem Compiler mit, dass er dem Standard für versteckte Freunde entspricht. Der Compiler enthält nur ausgeblendete Freunde im argumentabhängigen Nachschlagevorgang (ADL) für explizite Instanzen oder Vorlagenparameter des eingeschlossenen Klassentyps. Mit der Einschränkung können Sie ausgeblendete Freunde verwenden, um Vorgänge auf einem Typ beizubehalten, die auf implizite Konvertierungen angewendet werden. Diese Option kann die Buildgeschwindigkeit im Code verbessern, der andernfalls nicht verwendet werden /permissive-
kann.
Ein ausgeblendeter Freund ist eine friend
Funktions- oder Funktionsvorlage, die nur innerhalb einer Klassen- oder Klassenvorlagendefinition deklariert wird. Standardmäßig entfernt der Microsoft C++-Compiler ausgeblendete Freunddeklarationen nicht als Kandidaten für die Überladungsauflösung überall, wo er sollte. Dieses Legacyverhalten kann den Compiler verlangsamen, indem die ausgeblendeten Freundfunktionen als mögliche Kandidaten in weitere Kontexte eingeschlossen werden.
Standardmäßiges C++-Verhalten für ausgeblendete Freunde ist standardmäßig unter /permissive-
aktiviert. Verwenden Sie die Option/Zc:hiddenFriend-
, um das Verhalten des ausgeblendeten Freundes im Legacy-Format anzugeben, wenn die /permissive-
Option angegeben wird. Die Verwendung von C++20-Modulen erfordert standardmäßiges ausgeblendetes Freundverhalten.
Die /Zc:hiddenFriend
Option ist ab Visual Studio 2019, Version 16.4, verfügbar.
Beispiele für das Compilerverhalten, wenn Sie angeben /Zc:hiddenFriend
, finden Sie unter Nachschlageregeln für ausgeblendete Freunde.
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 sie einzuschließen
/Zc:hiddenFriend
oder/Zc:hiddenFriend-
auszuwählen, und wählen Sie dann "OK" aus.