Compilerfehler C2429

Sprachfeature“ erfordert Compilerflag „compiler option

Bemerkungen

Für das Sprachfeature ist die Compileroption erforderlich, die in der Fehlermeldung angezeigt wird.

So legen Sie den C++-Sprachstandard in Visual Studio fest:

  1. Öffnen Sie das Dialogfeld „Eigenschaftenseiten“ für Ihr Projekt.
  2. Wählen Sie Konfigurationseigenschaften>C/C++->Sprache aus.
  3. Wählen Sie für C++-Sprachstandard den durch die Fehlermeldung angegebenen Standard und dann "OK " oder "Übernehmen" aus. Wählen Sie z. B. ISO C++17 Standard (/std:c++17) aus, wenn der Fehler angibt /std:c++17.

Fügen Sie für Builds über die Befehlszeile die angegebene Option zum Befehl cl hinzu.

Example

Das folgende Beispiel führt zu C2429: Das Sprachmerkmal "nested-namespace-definition" erfordert den Compilerschalter "/std:c++17", wenn der Compiler den standardmäßigen C++14-Sprachstandard verwendet. Geschachtelte Namespacedefinitionen erfordern C++17 oder höher. Um den Fehler zu beheben, kompilieren Sie mit der /std:c++17-Option oder einer späteren Version, oder definieren Sie jeden Namespace separat.

// C2429.cpp
namespace a::b { int i; } // C2429 when the compiler uses C++14.
                          // Use /std:c++17 or later, or define each namespace as follows:
                          // namespace a { namespace b { int i; }}

int main() {
    a::b::i = 2;
}

Siehe auch