Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
The /Zc:externConstexpr compiler option tells the compiler to conform to the C++ standard and allow external linkage for constexpr variables. By default, Visual Studio always gives a constexpr variable internal linkage, even if you specify the extern keyword.
Syntax
/Zc:externConstexpr[-]
Remarks
The /Zc:externConstexpr compiler option causes the compiler to apply external linkage to variables declared by using extern constexpr.
In earlier versions of Visual Studio, by default or if /Zc:externConstexpr- is specified, Visual Studio applies internal linkage to constexpr variables even if the extern keyword is used. The /Zc:externConstexpr option is available starting in Visual Studio 2017 Update 15.6. and is off by default.
As of Visual Studio 2022 Update 17.6, the /permissive- option enables both /Zc:externConstexpr and /Zc:lambda. In prior versions, /permissive- didn't enable either one.
If a header file contains a variable declared extern constexpr, it must be marked __declspec(selectany) in order to merge the duplicate declarations into a single instance in the linked binary. Otherwise you may see linker errors, for example, LNK2005, for violations of the one-definition rule.
To set this compiler option in Visual Studio
Open the project's Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio.
Select the Configuration Properties > C/C++ > Command Line property page.
Add
/Zc:externConstexpror/Zc:externConstexpr-to the Additional options: pane.