c++ - 配置 Flycheck 以使用 C++11

标签 c++ c++11 emacs flycheck

我在为 C++11 配置 flycheck 时遇到了很大的麻烦。现在,flycheck 正在标记诸如 std::to_string() 之类的东西。我使用的检查器只是 g++。我可以在 .emacs 文件中添加什么以使 flycheck 默认采用 C++11?

最佳答案

Flycheck 为此提供了选项 flycheck-gcc-language-standard。您不应该在全局范围内设置它,因为这会破坏对 C 文件的检查,但您可以在 c++-mode-hook 中使用 init 文件中的以下代码进行设置:

(add-hook 'c++-mode-hook (lambda () (setq flycheck-gcc-language-standard "c++11")))

但是,我建议不要这样做。相反,请使用 Directory Variables为每个项目配置语言标准。

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 现在将为您项目中的所有 C++ 文件将 Flycheck 语法检查的语言标准设置为 C++ 11。

关于c++ - 配置 Flycheck 以使用 C++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949847/

相关文章:

c++ - 为什么模板测试不丢弃片段?

c++ - 强制执行所有&&?

c++ - super SDK : dependency errors

emacs - emacs org-mode 中的 "org-preview-latex-fragment"命令

c++ - 无法理解 C++ 中的 istringstream

c++ - FPU 控制函数是否与 x64_64 处理器相关?

c++ - 如何在Windows上使用MinGW编译C++?

C++11:constexpr 构造函数性能

ubuntu - 无法让 nrepl 在 Emacs 中工作

php - 如何让 emacs 在 php 控制结构之间缩进 html block ?