#pragma define ディレクティブは、クラスのオブジェクトを実際に定義することなく、テンプレート・クラスの定義を強制的に行います。このプラグマは、逆方向の互換性のためだけに提供されています。
ここで、template_classname は、定義するテンプレートの名前です。
ユーザーは、フォームの構成を使用して、クラス、関数、またはメンバーのテンプレート特殊化のインスタンスを明示的に生成することができます。
template declaration
例を以下に示します。
#pragma define(Array<char>)
は、以下と同等です。
template class Array<char>;
このプラグマは、ネーム・スペース・スコープ内で定義しなければなりません (つまり、関数/クラス本体の中に収めることはできません)。これは、テンプレート関数を効率的または自動的に生成するためにプログラムを再編成する場合に使用されます。