Erro do compilador C2429

'recurso de linguagem' requer a sinalização do compilador 'opção do compilador'

Observações

O recurso de idioma requer a opção do compilador mostrada na mensagem de erro.

Para definir o padrão de linguagem C++ em Visual Studio:

  1. Abra a caixa de diálogo Páginas de Propriedades do seu projeto.
  2. Selecione Propriedades de Configuração>C/C++>Linguagem.
  3. Para o C++ Language Standard, selecione o padrão especificado pela mensagem de erro e selecione OK ou Aplicar. Por exemplo, selecione ISO C++17 Standard (/std:c++17) quando o erro indicar /std:c++17.

Para compilações de linha de comando, adicione a opção especificada ao comando cl.

Example

O exemplo a seguir gera C2429: o recurso de linguagem 'nested-namespace-definition' requer o sinalizador do compilador '/std:c++17' quando o compilador usa seu padrão de linguagem C++14 padrão. Definições de namespace aninhadas exigem C++17 ou posterior. Para corrigir o erro, compile com a opção /std:c++17 ou posterior ou defina cada namespace separadamente.

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

Consulte também