Sdílet prostřednictvím


/Zc:externConstexpr (Povolení proměnných extern constexpr)

Možnost /Zc:externConstexpr kompilátoru říká kompilátoru, aby odpovídal standardu C++ a povolil externí propojení proměnných constexpr . Visual Studio ve výchozím nastavení vždy poskytuje proměnnou constexpr interní propojení, i když zadáte extern klíčové slovo.

Syntaxe

/Zc:externConstexpr[-]

Poznámky

Možnost /Zc:externConstexpr kompilátoru způsobí, že kompilátor použije externí propojení na proměnné deklarované pomocí extern constexpr.

Ve starších verzích sady Visual Studio ve výchozím nastavení nebo pokud /Zc:externConstexpr- je zadáno, sada Visual Studio použije interní propojení s constexpr proměnnými i v případě použití klíčového extern slova. Tato /Zc:externConstexpr možnost je dostupná od verze Visual Studio 2017 Update 15.6. a je ve výchozím nastavení vypnutý.

Od verze Visual Studio 2022 Update 17.6 tato /permissive- možnost povolí obojí /Zc:externConstexpr i /Zc:lambda. V předchozích verzích /permissive- ani jeden nepovolil.

Pokud soubor hlavičky obsahuje deklarovanou extern constexprproměnnou, musí být označen, __declspec(selectany) aby bylo možné sloučit duplicitní deklarace do jedné instance v propojeném binárním souboru. V opačném případě se můžou zobrazit chyby linkeru, například LNK2005 porušení pravidla jedné definice.

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. Přidejte /Zc:externConstexpr nebo /Zc:externConstexpr- do podokna Další možnosti:

Viz také

auto Klíčové slovo
permissive
/Zc (Shoda)