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.
Die /Zc:templateScope Compileroption ermöglicht die Überprüfung auf das Standard-C++-Verhalten bei der Schattenung von Vorlagenparametern.
Syntax
/Zc:templateScope[-]
Hinweise
Der C++-Standard lässt die Wiederverwendung des Namens (oder Schattens) eines Vorlagenparameters für eine andere Deklaration im Bereich der Vorlage nicht zu. Die /Zc:templateScope Compileroption aktiviert eine Fehlerüberprüfung für eine solche Schattenung.
Die /Zc:templateScope Option ist neu in Visual Studio 2022, Version 17.5 Preview 1. Die Option ist standardmäßig deaktiviert, auch wenn der Code mithilfe der /permissive- Option kompiliert wird (oder eine Option, die impliziert /permissive-, z /std:c++20 . B. oder /std:c++latest). Um die Fehlerüberprüfung zu aktivieren, müssen Sie der Compiler-Befehlszeile explizit hinzufügen /Zc:templateScope . Verwenden Sie die /Zc:templateScope- Option, um die Überprüfung explizit zu deaktivieren.
Beispiel
Unter /Zc:templateScopediesem Beispielcode wird ein Fehler erzeugt:
template<typename T>
void f(T&& t) {
int T = 13;
}
/* Output:
t.cpp(3): error C7527: 'T': a template parameter name cannot be reused within its scope
*/
So legen Sie diese Compileroption in Visual Studio 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.
Fügen Sie unter Zusätzliche Optionen
/Zc:templateScopeoder/Zc:templateScope-hinzu. Wählen Sie OK oder Übernehmen, um die Änderungen zu speichern.
Weitere Informationen
/Zc (Konformität)
/permissive-
/std (Standardversion für die Sprache festlegen)