私は現在、砂の土台の上に構築されたコードベースに取り組んでいます。
テスト済みと思われるライブラリには、「3 の規則」に違反する多数のクラスがあります。ほとんどの場合、非自明なデストラクタが宣言されていますが、コピー コンストラクタまたは代入演算子のいずれかが欠落しています。
クラスが 3 の規則に違反したときに警告するコンパイラ フラグ (gcc) または静的解析ツールはありますか?
現在、GCC バージョン 4.4 で Coverity を使用しています。
私は現在、砂の土台の上に構築されたコードベースに取り組んでいます。
テスト済みと思われるライブラリには、「3 の規則」に違反する多数のクラスがあります。ほとんどの場合、非自明なデストラクタが宣言されていますが、コピー コンストラクタまたは代入演算子のいずれかが欠落しています。
クラスが 3 の規則に違反したときに警告するコンパイラ フラグ (gcc) または静的解析ツールはありますか?
現在、GCC バージョン 4.4 で Coverity を使用しています。
Parasoft (商用ツール) の C++test には、「一貫してコピーして破棄する」ことをカバーするルール (MRM-40) があり、役に立ちそうです。基本的に、コピー コンストラクター、コピー代入演算子、またはデストラクターのいずれかを定義する場合、他のいずれかまたは両方を定義する必要がある可能性があります。
詳細については、http://www.parasoft.com/jsp/products/cpptest.jspをご覧ください。
コベリティは持っています。バージョン6.5を使用しています。チェッカー MISSING_COPY_OR_ASSIGN があります。