/Zc:externConstexpr
(habilitar las variables extern constexpr)
La opción del compilador /Zc:externConstexpr
indica al compilador que se ajuste al estándar de C++ y permita la vinculación externa para las variables constexpr
. De forma predeterminada, Visual Studio siempre proporciona una vinculación interna de variable constexpr
, incluso si especifica la palabra clave extern
.
Sintaxis
/Zc:externConstexpr
[-
]
Comentarios
La opción del compilador /Zc:externConstexpr
hace que el compilador aplique la vinculación externa a las variables declaradas mediante extern constexpr
.
En versiones anteriores de Visual Studio, de forma predeterminada o si /Zc:externConstexpr-
se especifica, Visual Studio aplica la vinculación interna a constexpr
variables incluso si se usa la extern
palabra clave . La opción /Zc:externConstexpr
está disponible a partir de Visual Studio 2017 Update 15.6 y está desactivada de forma predeterminada.
A partir de Visual Studio 2022 Update 17.6, la /permissive-
opción habilita y /Zc:externConstexpr
/Zc:lambda
. En versiones anteriores, /permissive-
no habilitó ninguna.
Si un archivo de encabezado contiene una variable declarada extern constexpr
, se debe marcar __declspec(selectany)
para combinar las declaraciones duplicadas en una sola instancia del binario vinculado. De lo contrario, es posible que vea errores del enlazador, por ejemplo: LNK2005, para las infracciones de la regla de definición única.
Para establecer esta opción del compilador en Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.
Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.
Agregue
/Zc:externConstexpr
o/Zc:externConstexpr-
al panel Opciones adicionales.