2017-10-24 4 views
1

私はC++プロジェクト用に(gcc 5.3.1を使用して)プリコンパイル済みヘッダーを使用しています。ヘッダーとSTLライブラリをプリコンパイル

私は、プリコンパイルされたヘッダーの中に多くの標準ライブラリヘッダーを含めました。

... 
#include <vector> 
#include <map> 
#include <set> 
#include <unordered_map> 
... 

これらは主にテンプレートなので、プリコンパイル済みヘッダーで使用しているすべてのタイプにテンプレートを指定する必要がありますか?

例:使用するテンプレートは、プリコンパイル済みヘッダーの生成時間

で知られている。このように

void touchStdVectorFloat(const std::vector<float> & vec) {} 
void touchStdVectorInt(const std::vector<int> & vec) {} 
... 

は、それが役に立つか役に立たないですか?

+0

いくつかの単語をチェックしたい場合があります。 STLは1998年より前にC++で使用されましたが、Cでは使用されませんでした。そして、それは ''を使用しました。 ''はC++標準ライブラリ(Tなし)のものです。 ''はSTLから来ていません。 – MSalters

+0

よろしくお願いいたします。投稿を編集しました – flod

答えて

1

事前にコンパイルされたヘッダーは、通常のヘッダーのインクルードの代わりに使用されます。テンプレートが含まれているかどうかは問題ではなく、コンパイルモデルは変更されません。テンプレートをインスタンス化するコードは、スコープ内のテンプレートの定義が必要です。

関連する問題