Поделиться через


Ошибка компилятора C2429

Для функции языка требуется флаг компилятора "параметр компилятора"

Для поддержки функции языка требуется определенный параметр компилятора.

Ошибка C2429: функция языка "nested-namespace-definition" требует флаг компилятора "/std:c++17" , если вы пытаетесь определить составное пространство имен, пространство имен, содержащее одно или несколько имен вложенных областей имен, начиная с Visual Studio 2015 с обновлением 5. (В Visual Studio 2017 версии 15.3 /std:c++latest требуется переключатель.) Определения составного пространства имен не допускаются в C++ до C++17. Компилятор поддерживает составные определения пространства имен при указании параметра компилятора /std:c++17 :

// C2429a.cpp
namespace a::b { int i; } // C2429 starting in Visual Studio 2015 Update 3.
                          // Use /std:c++17 to fix, or do this:
// namespace a { namespace b { int i; }}

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