我正在使用启用了-Wextra的g++ 4.2.1版本。我包括一个库的 header ,并且不断收到关于库中类的以下警告,该警告由-Wextra启用(我已用BaseClass替换了类的实际名称):

warning: base class ‘class BaseClass’ should be explicitly initialized in the copy constructor

我的问题是:如何禁用此警告?例如,-Wextra还启用-Wuninitialized,但是我可以通过传递-Wno-uninitialized作为编译器标志来覆盖该简单方法。关于复制构造函数的警告是否有类似内容?我无法在g++手册页或任何其他论坛帖子中找到答案。

最佳答案

根据http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html(搜索Wextra)的说法,它是-Wextra的固有部分,因此无法单独禁用(例如,未通过其自己的-W选项单独列出)。

您似乎最好的办法是将库的使用隔离到一个禁用-Wextra的文件上,或者根本不使用-Wextra并单独启用所有组件(从该链接)。

关于c++ - 禁用有关在派生类的复制构造函数中显式初始化基本构造函数的警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4788695/

10-11 10:54