/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:lambdaauch /Zc:externConstexpr . In früheren Versionen /permissive- wurde keines aktiviert.

Wenn eine Headerdatei eine variable deklariert extern constexprenthä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

  1. Ö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).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

  3. Fügen Sie den Bereich "Zusätzliche /Zc:externConstexpr Optionen" hinzu oder /Zc:externConstexpr- fügen Sie sie hinzu.

Siehe auch

Schlüsselwort auto
permissive
/Zc (Konformität)