Ответ 1
Flycheck предоставляет для этой цели опцию flycheck-gcc-language-standard
. Вы не должны устанавливать его глобально, потому что это нарушит проверку файлов C, но вы можете установить его из c++-mode-hook
со следующим кодом в файле инициализации:
(add-hook 'c++-mode-hook (lambda () (setq flycheck-gcc-language-standard "c++11")))
Однако я бы рекомендовал против этого. Вместо этого используйте Переменные каталога для настройки стандарта языка для каждого проекта.
Откройте корневой каталог вашего проекта в Dired с помощью C-x d
, а затем введите M-x add-dir-local-variable RET c++-mode RET flycheck-gcc-language-standard RET "c++11"
. Это создаст файл .dir-locals.el
в корневом каталоге вашего проекта. Emacs читает этот файл всякий раз, когда вы посещаете файл из этого каталога или любого подкаталога и задаете переменные в соответствии с правилами этого файла. В частности, Emacs теперь установит языковой стандарт для проверки синтаксиса Flycheck на С++ 11 для всех файлов на С++ в вашем проекте.