如何"跟踪"缺少的ctor初始化列表参数?

soh*_*hel 4 c++ constructor initialization

我相信每个人都有时间面对丑陋的事情.

问题是在类中添加一个字段并忘记扩展初始化列表,例如:

class T{
  private:
    field1;
    ...
    field10;
};

T::T( int speedValue ):
field1( Speed::MphToMps(speedValue) ),
field2( new OtherClass(14,5,15) ),
field3( PublicValueGenerator::generateNewFieldValue(0,15) ),
...,
field10( "unpredictable value" );
Run Code Online (Sandbox Code Playgroud)

如果赶时间我添加一些字段,比如newForgottenField,我不时会忘记设置初始值.正如我记得一些IDE可以给出一个提示,但是vim + addons是我的选择:)

所以MB有一些提示,以简化跟踪这样的情况下或拇指或粗鲁宏的一些规则,它会发出警告或编译时错误(这将是惊人的:))?你如何克服这个障碍?

最好的祝福

Alo*_*ave 6

如果你正在使用g ++,那么它提供了一个选项,可以对违反Scott Meyer的Effective C++指南的结构发出警告:)
选项是:

-Weffc++ 
Run Code Online (Sandbox Code Playgroud)

请注意,它也会启用许多其他警告.此外,并非所有标准库标题都遵循Meyers guildelines.