J'ai des problèmes importants pour configurer le contrôle de vol pour C++ 11. En ce moment, flycheck signale des choses comme std::to_string()
. Le vérificateur que j'utilise est juste g ++. Que puis-je ajouter dans le fichier .emacs pour que flycheck assume C++ 11 par défaut?
Flycheck fournit l'option flycheck-gcc-language-standard
dans ce but. Vous ne devez pas le définir globalement, car cela interromprait la vérification des fichiers C, mais vous pouvez le définir à partir de c++-mode-hook
avec le code suivant dans votre fichier init:
(add-hook 'c++-mode-hook (lambda () (setq flycheck-gcc-language-standard "c++11")))
Cependant, je recommanderais contre cela. À la place, utilisez Variables de répertoire pour configurer la norme de langue par projet.
Ouvrez le répertoire racine de votre projet dans Dired avec C-x d
, puis tapez M-x add-dir-local-variable RET c++-mode RET flycheck-gcc-language-standard RET "c++11"
. Cela va créer un .dir-locals.el
fichier dans le répertoire racine de votre projet. Emacs lit ce fichier chaque fois que vous visitez un fichier de ce répertoire ou de tout sous-répertoire, et définit des variables selon les règles de ce fichier. Plus précisément, Emacs définira désormais la norme de langage pour la vérification de la syntaxe Flycheck sur C++ 11 pour tous les fichiers C++ de votre projet.
Déjà de très bonnes réponses. Je veux juste ajouter que si vous utilisez clang
à la place, alors la variable à modifier est flycheck-clang-language-standard
.