1

興味深い反復パターンを使用して、テンプレートの基本クラスから派生させたいと考えています。

template<typename A, typename B>
struct base
{
    typedef A type;
};

template<typename B>
struct derived : public base<derived, B>
{
   // Own attributes.
};

しかし、コンパイラ (g++ 4.7.2) は、引数 (派生/A) が一致しないことを教えてくれます。

どうすればいいですか?

4

1 に答える 1

5

derivedd is a class templateというエラーが発生し、そのテンプレート パラメーターを省略しています。のテンプレート パラメータを指定する必要がありますderived

template<typename B>
struct derived : public base<derived<B>, B>
{
   // Own attributes.
};
于 2012-12-13T16:15:04.623 に答える