1

可能な限り状況を単純化しようとしました。だから私はクラスを持っています:

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 パラメータに似たものでしょうか。

4

3 に答える 3