C++ 如何使用clang++;带-std=c++;11-Weverything-Werror

C++ 如何使用clang++;带-std=c++;11-Weverything-Werror,c++,c++11,compilation,clang,compiler-warnings,C++,C++11,Compilation,Clang,Compiler Warnings,我想编译以下文件(temp.cpp): #包括 福班{ 公众: Foo()=默认值; }; int main(){ 实际上,你可能不想要所有的警告,因为许多警告可能被认为是风格上的或主观的,而其他警告(比如你遇到的那一个)在你的情况下只是愚蠢的 -Weverything最初构建有两个原因: 发现:否则很难获得所有可用警告的列表 黑名单备选方案:使用gcc,您可以选择您希望应用的警告(白名单),使用-Weverything您可以选择您不希望应用的警告;优点是,当转到新版本的编译器时,您更有可能从

我想编译以下文件(temp.cpp):

#包括
福班{
公众:
Foo()=默认值;
};
int main(){

实际上,你可能不想要所有的警告,因为许多警告可能被认为是风格上的或主观的,而其他警告(比如你遇到的那一个)在你的情况下只是愚蠢的

-Weverything
最初构建有两个原因:

  • 发现:否则很难获得所有可用警告的列表
  • 黑名单备选方案:使用gcc,您可以选择您希望应用的警告(白名单),使用
    -Weverything
    您可以选择您不希望应用的警告;优点是,当转到新版本的编译器时,您更有可能从新的警告中获益
显然,发现与生产使用并不真正兼容;因此,您似乎属于黑名单

Clang diagnostics系统将输出(默认情况下)负责生成警告的最具体警告组的名称(此处为
-Wc++98 compat
),并且可以通过在
-W
之后添加
否-
关闭每个警告组

因此,对于黑名单,您可以得到:

-Weverything -Wno-c++98-compat -Wno-...

我们鼓励您不时修改黑名单警告列表(例如,当您升级到较新的编译器时).

添加
-Wno-c++98 compat
,但我不知道是否有通用的方法。@Mat能否请您将此作为answear发布,以便我可以接受。
Weverything
启用所有警告,它与c++98无关,请尝试
-Wall
和/或
-Wextra
,我不知道这是否足以产生警告“c++11 compatible flag for-Weverything”正如您所要求的。我想要所有不反对c++11的警告。因此我想要所有的警告。仅使用墙不是一个选项。另外-Wno-c++98 compat pedantic,假设您足够幸运能够使用GCC\u WARN\u pedantic=是。
-Weverything -Wno-c++98-compat -Wno-...