c++ c++11 emacs flycheck

Configurando Flycheck para trabajar con C++ 11



c++11 emacs (2)

Estoy teniendo problemas importantes al configurar el flycheck para C ++ 11. En este momento, flycheck está marcando cosas como std::to_string() . El corrector que estoy usando es solo g ++. ¿Qué puedo agregar en el archivo .emacs para que flycheck asumirá C ++ 11 de manera predeterminada?


Flycheck ofrece la opción flycheck-gcc-language-standard para este propósito. No debe configurarlo globalmente, porque eso interrumpirá la verificación de los archivos C, pero puede configurarlo desde c++-mode-hook con el siguiente código en su archivo init:

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

Sin embargo, yo recomendaría en contra de esto. En su lugar, utilice Variables de directorio para configurar el estándar de idioma por proyecto.

Abra el directorio raíz de su proyecto en Dired con Cx d y luego escriba Mx add-dir-local-variable RET c++-mode RET flycheck-gcc-language-standard RET "c++11" . Esto creará un archivo .dir-locals.el en el directorio raíz de su proyecto. Emacs lee este archivo cada vez que visita un archivo de este directorio o cualquier subdirectorio, y establece variables de acuerdo con las reglas de este archivo. Específicamente, Emacs ahora establecerá el estándar de idioma para la comprobación de la sintaxis de Flycheck en C ++ 11 para todos los archivos C ++ en su proyecto.


Muy buenas respuestas ya. Solo quiero agregar, que si usas clang lugar, entonces la variable que se necesita modificar es flycheck-clang-language-standard .