Share via


/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

  1. Ö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).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

  3. Ä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.

Siehe auch

/Zc (Konformität)
/permissive-