タイトルがわかりにくいので申し訳ありませんが、ここで詳しく説明します。私は検索でこの特定の問題を見つけることができなかったので、それを見逃した場合は、正しいスレッドを教えてください...
基本クラスとして使用している1つのパラメーターに依存するクラステンプレートがあります。
template <class TVertex>
class DrawExecutorDX11
{
public:
DrawExecutorDX11( );
virtual ~DrawExecutorDX11( );
void AddVertex( const TVertex& vertex );
protected:
TGrowableVertexBufferDX11<TVertex> VertexBuffer;
};
私がやりたいのは、このクラステンプレートから継承すると同時に、別のクラステンプレートパラメーターをサブクラスに追加することです。構文の私の試みは次のようになります:
template <class TVertex, class TInstance>
class DrawInstancedExecutorDX11<TInstance> : public DrawExecutorDX11<TVertex>
{
public:
DrawInstancedExecutorDX11( );
virtual ~DrawInstancedExecutorDX11( );
void AddInstance( const TInstance& data );
protected:
TGrowableVertexBufferDX11<TInstance> InstanceBuffer;
};
この構成により、次のようにサブクラステンプレートのインスタンスを宣言できるようになることを期待しています。
DrawInstancedExecutorDX11<VertexStruct,InstanceStruct> myExecutor;
ただし、VS2012はサブクラスのコンパイルも考慮せず、クラスDrawInstancedExecutorDX11の後にセミコロンが必要であることを示しています。正直なところ、私はこれまでこの種のテンプレートの配置を試したことがないので、他の誰かがこれを行ったことがあるのではないかと思います。もしそうなら、私が作っている基本的な構文の間違いや他の落とし穴はありますか?あなたが与えることができるどんな助けまたはガイダンスにも前もって感謝します!