/Zc:templateScope (Vorlagenparameterschattierung überprüfen)

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

  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. Fügen Sie unter Zusätzliche Optionen /Zc:templateScope oder /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)