私はC++を初めて使用し、一部のライブラリを最初にコンパイルする必要がある理由を理解しようとしています。
たとえば、一部のBoostライブラリはヘッダーのみ(たとえばmsm)であり、他の一部はコンパイルする必要があります(たとえばタイマー)
なぜそうなのか、いい説明が見つかりません。誰かが私を理解するのを手伝ってもらえますか?
ありがとうございました
私はC++を初めて使用し、一部のライブラリを最初にコンパイルする必要がある理由を理解しようとしています。
たとえば、一部のBoostライブラリはヘッダーのみ(たとえばmsm)であり、他の一部はコンパイルする必要があります(たとえばタイマー)
なぜそうなのか、いい説明が見つかりません。誰かが私を理解するのを手伝ってもらえますか?
ありがとうございました
.h(pp)
特定の種類のものは、通常のファイルではなく、ヘッダーにのみ保持され.cpp
ます。私が知っているのは、テンプレート化されたクラスと関数だけです。ブーストはこれを利用していると確信しています。
#include
彼らに必要なだけです。template
sはヘッダーファイルで定義する必要があります。しかし、ヘッダーファイルを使用することで、どれだけ逃げることができるか、またはどれだけ耐えることができるかには限界があります。たとえば、共有ライブラリ内の静的オブジェクトの処理は、C ++標準が何も知らないため、ヘッダーで実行できない場合があります。