忽略特定代码的weffc ++初始化列表顺序警告

时间:2018-11-30 05:20:04

标签: c++ initializer-list weffc++

我有以下代码:

class Base {
    // Some code
    Base(int y) {}
}

class Derived : Base {
       int test;
       Derived(int x);
 }

 Derived::Derived(int x) : Base(x)     {
       // Some code and calculation to generate vale of test
       test = val;
  }

我正在使用标志“ -Weffc ++”进行编译。 我得到警告“测试需要在初始化列表中初始化。”
但是我做不到,因为我需要做一些计算才能产生测试的价值。

因此,为了避免发生此错误,我确实尝试了“ -Wno-reorder”标志,但此方法不起作用。我也不喜欢它,因为它将对所有代码禁用此警告,我只想针对此特定情况禁用此警告。

我还使用了#ppgma GCC诊断忽略-Weffc ++做到了这一点,它恰好位于cpp文件中的构造函数之前,并且确实起作用。但是我需要在所有要避免此警告的构造函数中添加杂注。

但是有什么更好的方法来避免针对特定代码的Weffc ++初始化列表顺序警告。还是有办法解决此警告?

1 个答案:

答案 0 :(得分:0)

Derived::Derived(int x) : Base{ x }, test{} // shut up the compiler.
{
    // Some code and calculation to generate vale of test
    test = val;
}