標準インクルードの長いシーケンスが面倒だと思います:
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
これらのヘッダー ファイルがほとんど変更されないことを考えると、すべての std ヘッダーを含む "std.h" ファイルを作成して、それをどこでも使用するべきではない理由はありますか?
不要なヘッダー ファイルを含めると、コンパイル時間が長くなります。
これらをプロジェクトの標準のプリコンパイル済みヘッダー ファイルに追加することをお勧めします: プロジェクトに標準のプリコンパイル済みヘッダー ファイルがあり、別の標準ヘッダー ファイルを持つ他のプロジェクトでファイルを再利用できない場合。
これに対する新しい回答を作成するのは嫌いですが、基本的には、Brian Ensink と ChrisW の回答の両方をまとめたいと考えています。
まず、ブライアンが言ったように、コンパイルするたびに大量のファイルが含まれるため、コンパイル時間が急増します。幸いなことに、標準のインクルードのように見えるので、それほど頻繁に変更されることはないはずですが、それでもうまくいかないでしょう.
これを軽減するには、完全な再構築を行うとき、PCH ファイルをトーストするとき、またはそれに含まれる何かを変更するときにのみ再コンパイルされるプリコンパイル済みヘッダーを構築します。それほど頻繁には変わりません。
実際に使用していない場合は、含めないでください。
コードの可読性が低下します(奇妙なことに:))。それらをすべて 1 つのヘッダー ファイルに含めることで、ファイルの先頭を見ただけでは、iostream (したがって IO を実行)、fstream (およびファイル アクセスを実行) などを含む変換単位を判別できなくなります。
eclipse のようにインクルード ステートメントを折りたたむことができる IDE を使用して、インクルードを自動的に折りたたむことをお勧めします。これにより、依存関係を明確にしながら、それらをビューから削除します。
これにより、オブジェクト ファイルのサイズも大きくなりますが、最近では大したことではありません。
バイナリが実際には大きくならないというコメントごとに編集