3

当社の製品は、プログラミング言語として C++ を使用しています。C++ STL を使用する際の厄介な問題の 1 つは、必要なヘッダー ファイルをインクルードするのを忘れていることです。ファイルが他の STL ヘッダーにインクルードされている可能性があるため、ビルドはパスします。例えば、

Xcode を使用する Mac プラットフォームでは、 include を使用せstd::auto_ptrずに includeを使用すると、ビルドは成功しますが、Android プラットフォームでは失敗します。memory.hiostream.h

しかし、コード変更コミットごとにビルド チェックのためにコードを Android に移動したくありません。それで、とにかくその問題を回避する方法はありますか?

編集 1: ヘッダーを含めることを忘れないことが最善の解決策であることはわかっています。しかし、開発者は間違いを犯します。それで、それをチェックするのに役立つツールはありますか?

編集 2: Seams は理想的なソリューションではないため、vim スクリプトを使用してエディターで確認します。ソリューションはhttps://github.com/vim-scripts/vim-cpp-auto-include/blob/master/に似ています。 ftplugin/cpp_auto_include.vim

4

2 に答える 2

1

common_includes.hそこに必要なすべてのファイルを含むファイルを使用し、そのファイルを必要な場所に含めることができます。これにより、状況が単純化され、一部のファイルを含めるのを忘れるのに役立ちます。少なくとも一度だけ忘れます:)。

于 2013-09-17T06:22:52.020 に答える
0

私が知っている唯一のツールは...コンパイラ自体です。

問題が移植性である場合、私が見た最善の解決策は、必要なすべての環境に対して自動化されたビルド/テスト スイートを配置することでした。その後、プル リクエストが作成されるたびに、すべてのビルド ボットで検証され、何かを忘れている場合は警告が表示されます。

于 2013-09-17T06:24:33.067 に答える