/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 constexpr
promě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
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
Přidejte
/Zc:externConstexpr
nebo/Zc:externConstexpr-
do podokna Další možnosti: