gcc警告“'将在'
我从第三方代码中得到很多这些警告,我无法修改。 有没有办法来禁用此警告或至less禁用某些地区(如#pragma push /stream行在VC + +)?
例:
list.h:1122: warning: `list<LogOutput*, allocator<LogOutput*> >::node_alloc_' will be initialized after list.h:1117: warning: `allocator<LogOutput*> list<LogOutput*, allocator<LogOutput*> >::alloc_' 确保成员按照在类中出现的顺序显示在初始化程序列表中
 Class C { int a; int b; C():b(1),a(2){} //warning, should be C():a(2),b(1) } 
 或者你可以转动-Wno-reorder 
 你可以用-Wno-reorder禁用它。 
对于那些使用QT有这个错误,将其添加到.pro文件
 QMAKE_CXXFLAGS_WARN_ON += -Wno-reorder 
 使用-Wno-reorder (man gcc是你的朋友:)) 
 如果您看到库标题中的错误并且正在使用GCC,则可以通过使用-isystem而不是-I来包含标题来禁用警告。 
类似的function存在于铛 。
 如果您使用CMake,则可以为include_directories指定SYSTEM 。 
初始化顺序无关紧要。 所有的字段都按照它们在类/结构中定义的顺序进行初始化。 但是如果在初始化列表中的顺序不同,gcc / g ++会产生这个警告。 只更改初始化顺序以避免此警告。 但是在构造之前,你不能在初始化中定义字段。 这将是一个运行时错误。 所以你改变定义的顺序。 要小心,保持注意!