Błąd kompilatora C2429

Funkcja języka wymaga flagi kompilatora "opcja kompilatora"

Uwagi

Funkcja języka wymaga opcji kompilatora wyświetlanej w komunikacie o błędzie.

Aby ustawić standard języka C++ w Visual Studio:

  1. Otwórz okno dialogowe Strony właściwości dla projektu.
  2. Wybierz Właściwości konfiguracji>C/C++>Język.
  3. W przypadku języka C++ Language Standard wybierz standard określony przez komunikat o błędzie, a następnie wybierz przycisk OK lub Zastosuj. Na przykład wybierz standard ISO C++17 (/std:c++17), jeśli w komunikacie o błędzie podano /std:c++17.

W przypadku kompilacji z wiersza polecenia dodaj określoną opcję do polecenia cl.

Example

Poniższy przykład generuje C2429: funkcja języka "nested-namespace-definition" wymaga flagi kompilatora "/std:c++17", gdy kompilator używa domyślnego standardu języka C++14. Zagnieżdżone definicje przestrzeni nazw wymagają języka C++17 lub nowszego. Aby naprawić błąd, skompiluj z opcją /std:c++17 lub nowszą albo zdefiniuj każdą przestrzeń nazw oddzielnie.

// 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;
}

Zobacz także