Compartilhar via


Erro do compilador C2429

'recurso de linguagem' exige sinalizador de compilador 'opção do compilador'

O recurso de linguagem requer uma opção de compilador específica para suporte.

O erro C2429: o recurso de linguagem 'nested-namespace-definition' requer que o sinalizador do compilador '/std:c++17' seja gerado se você tentar definir um namespace composto, um namespace que contém um ou mais nomes de namespace aninhados por escopo, começando no Visual Studio 2015 Atualização 5. (No Visual Studio 2017 versão 15.3, a opção /std:c++latest é necessária.) Definições de namespace compostas não são permitidas no C++ antes do C++17. O compilador dá suporte a definições de namespace compostas quando a opção do compilador /std:c++17 é especificada:

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