定義取り込み型編成とは、テンプレートの宣言と定義を、そのテンプレートを使用するファイルの中に含めることです。 構成の例を次に示します。
main.cc
template <class Number> Number twice(Number original);
template <class Number> Number twice(Number original )
{ return original + original; }
int main()
{ return twice<int>(-3); }
|
テンプレートを使用するファイルに、テンプレートの宣言と定義の両方を含んだファイルをインクルードした場合も、定義取り込み型編成を使用したことになります。構成の例を次に示します。
twice.h
#ifndef TWICE_H
#define TWICE_H
template <class Number>
Number twice(Number original);
template <class Number> Number twice( Number original )
{ return original + original; }
#endif
|
main.cc
#include "twice.h"
int main()
{ return twice(-3); }
|
テンプレートのヘッダーは、べき等にすることが特に重要です。「5.1.2 べき等ヘッダーファイル」を参照してください。