Sdílet prostřednictvím


/Zc:templateScope (Kontrola stínování parametrů šablony)

Možnost /Zc:templateScope kompilátoru umožňuje kontrolovat chování standardního jazyka C++ v případě stínování parametrů šablony.

Syntaxe

/Zc:templateScope[-]

Poznámky

Standard C++ neumožňuje opakované použití názvu parametru šablony (nebo stínování) pro jinou deklaraci v rámci oboru šablony. Možnost /Zc:templateScope kompilátoru povolí kontrolu takového stínování chyb.

Tato /Zc:templateScope možnost je nová v sadě Visual Studio 2022 verze 17.5 Preview 1. Tato možnost je ve výchozím nastavení vypnutá, i když je kód zkompilován pomocí /permissive- možnosti (nebo možnosti, která znamená /permissive-, například /std:c++20 nebo /std:c++latest). Chcete-li povolit kontrolu chyb, musíte explicitně přidat /Zc:templateScope do příkazového řádku kompilátoru. Pokud chcete tuto kontrolu explicitně zakázat, použijte tuto /Zc:templateScope- možnost.

Příklad

V části /Zc:templateScopetento vzorový kód vytvoří chybu:

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
*/

Nastavení této možnosti kompilátoru v sadě Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.

  3. V dalších možnostech přidejte /Zc:templateScope nebo /Zc:templateScope-. Změny uložíte kliknutím na OK nebo Použít .

Viz také

/Zc (Shoda)
/permissive-
/std (Určení standardní verze jazyka)