Partager via


Erreur du compilateur C2429

'fonctionnalité de langage' nécessite l’indicateur de compilateur 'option du compilateur'

La fonctionnalité de langage nécessite une option de compilateur spécifique pour la prise en charge.

L’erreur C2429 : la fonctionnalité de langage « nested-namespace-definition » nécessite l’indicateur du compilateur « /std :c++17 » est générée si vous essayez de définir un espace de noms composé, un espace de noms qui contient un ou plusieurs noms d’espaces de noms imbriqués dans l’étendue, à compter de Visual Studio 2015 Update 5. (Dans Visual Studio 2017 version 15.3, le /std:c++latest commutateur est requis.) Les définitions d’espace de noms composées ne sont pas autorisées en C++ avant C++17. Le compilateur prend en charge les définitions d’espaces de noms composés lorsque l’option du /std:c++17 compilateur est spécifiée :

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