Erreur du compilateur C2429

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

Remarques

La fonctionnalité de langage nécessite l’option du compilateur affichée dans le message d’erreur.

Pour définir la norme de langage C++ dans Visual Studio :

  1. Ouvrez le dialogue Pages de propriétés du projet.
  2. Sélectionnez Propriétés> de configurationC/C++>Language.
  3. Pour C++ Language Standard, sélectionnez la norme spécifiée par le message d’erreur, puis sélectionnez OK ou Appliquer. Par exemple, sélectionnez ISO C++17 Standard (/std :c++17) lorsque l’erreur spécifie /std:c++17.

Pour les builds de ligne de commande, ajoutez l’option spécifiée à la cl commande.

Example

L’exemple suivant génère l’erreur C2429 : la fonctionnalité de langage « nested-namespace-definition » nécessite l’indicateur du compilateur « /std :c++17 » lorsque le compilateur utilise sa norme de langage C++14 par défaut. Les définitions d’espaces de noms imbriquées nécessitent C++17 ou version ultérieure. Pour corriger l’erreur, compilez avec l’option /std:c++17 ou une version ultérieure, ou définissez chaque espace de noms séparément.

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

Voir aussi