用company-clang配置了c++补全,但是在c语言中会报错

本人是spacemacs的新手,配置了c++的系统头文件路径,将company clang argument中添加了-std=c++11,但是在c语言中是没有-std=c++11这个选项的,所以在写c代码时总是会报以下错: clang failed with error 1: /usr/bin/clang -fsyntax-only -Xclang -code-completion-macros -x c -std=c++11 -Xclang -code-completion-at=-:2:10 -

error: invalid argument ‘-std=c++11’ not allowed with ‘C/ObjC’

请问有什么方法能自动识别cpp文件,为clang clang arguments加上-std=c++11这个选项吗?

把设置写在c++mode的hook里,比如这样:

(add-hook 'c++-mode-hook

       (lambda()

              (setq company-clang-arguments '("-std=c++1z"))))