Base 構造体から派生した int によってテンプレート化された構造体があります。
struct Base { int i; double d; };
template< int N > struct Derv : base { static const int mN = N; };
Derv< N > の配列を作成する必要があります。ここで、N はその配列内の構造体ごとに異なります。C/C++ が異なる型のオブジェクトの配列を許可していないことは知っていますが、これを回避する方法はありますか? どういうわけか型情報を分離することを考えていました (基本構造体へのポインターや共用体の使用のようなヒントが頭に浮かびますが、これらすべてで、コンパイル時に使用するために各配列要素の型情報を格納する方法がわかりません)。ご覧のとおり、各 Derv< N > のメモリ パターンは同じです。
コードの後半でテンプレートを特殊化するために、各配列要素の型にアクセスする必要があります。このすべての一般的な目的は、コード内のどこかで実行時の「型切り替え」を行う必要のないコンパイル時のディスパッチ メカニズムを持つことです。