私たちのチームには何人かの新しい C++ の人が働いているので、毎日醜いコードが多すぎます! 読み取り専用の文字列、STL コンテナーをパラメーターとして使用する関数を嫌いますが、const 参照はありません!!! 私は夢中だ!!!
これらの醜いコードを見つけることができる静的コードチェッカーはありますか? 私たちのメイクファイルで使用されるそのようなツールが必要です。
私たちのチームには何人かの新しい C++ の人が働いているので、毎日醜いコードが多すぎます! 読み取り専用の文字列、STL コンテナーをパラメーターとして使用する関数を嫌いますが、const 参照はありません!!! 私は夢中だ!!!
これらの醜いコードを見つけることができる静的コードチェッカーはありますか? 私たちのメイクファイルで使用されるそのようなツールが必要です。
ええ、自動化されたツールで「悪いコード」を防ぐことはまずありません。
私自身、また職場でもこれを行っていますが、常にできるだけ多くの警告をオンにしてきました (通常は、高レベルの警告を有効にして、「明らかにばかげた」警告のみをオフにします。g++ は唯一の例外です)。すべてをオンにするオプションがないため、-Wall、-Wextra、およびその他の-Wを実行し、新しい警告が追加されたかどうかを確認するために時々マニュアルを調べます)。
また、-Werror または /WX でコンパイルします。残念ながら、Linux と Windows のヘッダーは今のところかなりクリーンなように見えますが、不適切なキャストやブースト ヘッダーからのマクロの不適切な使用などについて愚かな警告が表示されます。サードパーティのライブラリは、多くの場合、警告に対して不適切に記述されています。
静的解析ツールについては、cppcheck と clang を試しました (どちらも無料なので、試してみました)。どちらにもわくわくしませんでした。ビルド ソフトウェアにいずれかまたは両方のサポートを追加することをまだ計画していますが、優先度はかなり低くなります。2つのうちの1つ(どちらを覚えていないか)が実際に何かを見つけました:不要な割り当てであり、まともなオプティマイザーはとにかく削除します。私は完璧なバグゼロの開発者ではないと思うので、ツールのせいにしています。それでも、私はその割り当てを削除しました:-)
私が間違っていなければ、商用の VisualStudio バージョンにもコード分析機能があります (家では Express の方が好きで、職場では MacOS の開発に追われています)。そっちの方がいいかもしれません。または他の商用ツールの 1 つ。結局のところ、彼らはお金のために何かを提供しなければなりません。
まだ試していない追加の無料ツールがいくつかあります。http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2FC.2B.2Bリストがどの程度完全かはわかりませんが、最終的には C++ を処理できるすべての無料ツールを試してみたいと思っています。
特にあなたの問題について、Wi8kipediaは「cpplint」を「cpplintは、GoogleがC ++コーディングの「ベストプラクティス」と見なすものを実装しています」と説明しています。それが何を意味するのかわかりませんが、ウィキペディアのページには「Google C++ Style Guide」pdf へのリンクがあります。または、試してみて、それが何を訴えているかを確認することもできます:-)
また、おそらくそのようなツールを Makefile に追加したくないでしょう (実際に実行するには「make check」を呼び出さなければならないことを意味している場合を除きます)。新しいコミットを許可する前にそれをチェックするためにソース コード リポジトリに追加するのは、おそらく時間がかかりすぎます (コード分析はほとんど「多くのエクストラを使用してコンパイルする」ため、かなりの時間がかかります)。その後。
パフェまたは糸くず、グーグル「静的分析ツール」
GCC を使用してこれらを警告として取得している場合は、おそらく -Wall フラグを使用してこれらのいくつかを取得できます。