ヘッダーのみ


Header-only

 「ヘッダーのみ」  
CまたはC++プログラミング言語のコンテキストでは、ライブラリはヘッダーと呼ばれます。ライブラリを構成するすべてのマクロ、関数、およびクラスの完全な定義がヘッダーファイル形式でコンパイラに表示される場合のみです。ヘッダーのみのライブラリは、使用するために個別にコンパイル、パッケージ化、およびインストールする必要はありません。必要なのは、コンパイラーをヘッダーの場所に向けてから、#includeを指定することだけです。アプリケーションソースへのヘッダーファイル。もう1つの利点は、ライブラリのすべてのソースコードが利用可能な場合、コンパイラのオプティマイザがはるかに優れた仕事をすることができることです。
欠点は次のとおりです。
脆弱性–ライブラリへのほとんどの変更では、そのライブラリを使用してすべてのコンパイルユニットを再コンパイルする必要があります
より長いコンパイル時間–コンパイルユニットは、インターフェイスだけでなく、インクルードされたファイル内のすべてのコンポーネントの実装を確認する必要があります
マシンコードの膨張(おそらく)–非クラス関数でのインラインステートメントの必要な使用は、過剰なインライン化によってコードの膨張を引き起こす可能性が
それにもかかわらず、ヘッダーのみの形式は、パッケージングの(多くの場合、はるかに深刻な)問題を回避するために人気が
C ++テンプレートの場合、コンパイラーはインスタンス化するためにテンプレートの完全な定義を知る必要があるため、ヘッダーに定義を含めることがコンパイルの唯一の方法です。

参考文献
^ Wilson、Matthew(2004)。不完全なC++。アディソン-ウェスリー。p。177. ISBN 0-321-22877-4。