可能な限り状況を単純化しようとしました。だから私はクラスを持っています:
class C
{
int * field;
public:
C() : field(nullptr) {}
void init(int* f) { field = f; }
int getI1() { return *field; }
int getI2() { return *field; }
};
これにより、2 つの Lint 警告 613 が生成されます (null ポインター 'C::i' の使用の可能性...)
getI1() または getI2() が呼び出されたときに「フィールド」が null にならないことはわかっています。残念ながら、コンストラクターで初期化できません。したがって、Lint 警告を抑制したいと考えています。私はこのようにそれを行うことができます
class C
{
int * field;
public:
C() : field(nullptr) {}
void init(int* f) { field = f; }
int getI1() { return *field; } //lint !e613
int getI2() { return *field; } //lint !e613
};
しかし、私の実際のケースでは:
1)そのようなクラスはかなり多く、各クラスにはこのポインターを使用する多くの関数があります。
2) 私の経営陣は、コードにあまりにも多くの lint コメントを追加することを許可していません。
だから私の質問:リントに「コードが最善ではないことを知っているので、この特定のメンバー変数のnullのチェックをやめてください」と伝えるコマンドラインオプションを知っている人はいますか?
-sem パラメータに似たものでしょうか。