C++ プログラミングガイド

定義取り込み型の構成

テンプレートを使用するファイルの中にテンプレートの宣言と定義が含まれていれば、そのファイルは定義取り込み型の構成です。次にその例を示します。


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 ); }


注 -

ここでは、テンプレートヘッダーをべき等にすることが重要です (「べき等なヘッダーファイル」を参照)。