/Zc:externConstexpr
(Externe Constexpr-Variablen aktivieren)
Die /Zc:externConstexpr
Compileroption weist den Compiler an, dem C++-Standard zu entsprechen und die externe Verknüpfung für constexpr
Variablen zuzulassen. Standardmäßig gibt Visual Studio immer eine constexpr
variable interne Verknüpfung, auch wenn Sie das extern
Schlüsselwort angeben.
Syntax
/Zc:externConstexpr
[-
]
Hinweise
Die /Zc:externConstexpr
Compileroption bewirkt, dass der Compiler externe Verknüpfungen auf Variablen anwendet, die mithilfe von extern constexpr
.
In früheren Versionen von Visual Studio wendet Visual Studio standardmäßig interne /Zc:externConstexpr-
Verknüpfungen auf constexpr
Variablen an, auch wenn das extern
Schlüsselwort verwendet wird. Die /Zc:externConstexpr
Option ist ab Visual Studio 2017 Update 15.6 verfügbar. und ist standardmäßig deaktiviert.
Ab Visual Studio 2022 Update 17.6 aktiviert die /permissive-
Option sowohl als /Zc:lambda
auch /Zc:externConstexpr
. In früheren Versionen /permissive-
wurde keines aktiviert.
Wenn eine Headerdatei eine variable deklariert extern constexpr
enthält, muss sie markiert __declspec(selectany)
werden, um die duplizierten Deklarationen in einer einzigen Instanz in der verknüpften Binärdatei zusammenzuführen. Andernfalls werden Linkerfehler, z. B. LNK2005, für Verstöße gegen die 1-Definition-Regel angezeigt.
So legen Sie diese Compileroption in Visual Studio fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).
Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.
Fügen Sie den Bereich "Zusätzliche
/Zc:externConstexpr
Optionen" hinzu oder/Zc:externConstexpr-
fügen Sie sie hinzu.