嵌套模板类的问题

时间:2013-02-26 13:25:45

标签: c++ templates

我试图测试下面的模板化代码但是我收到以下错误:

  error: ‘Foo’ is not a template

我的代码是否正确无误?它看起来是我可能做的最简单的模板代码!

  template<typename D>
  struct Ciccio{
  };

  template<typename S>
  struct Foo< Ciccio<S> >{
  };


int main(){
    typedef Ciccio<int> test_type;
    Foo<test_type> f;
    return 1;    
}

1 个答案:

答案 0 :(得分:3)

目前,Foo看起来像是部分模板专业化。您需要提供主要Foo类模板:

template<typename D>
struct Ciccio {};

// primary template
template<typename S>
struct Foo;

// partial specialization
template<typename S>
struct Foo< Ciccio<S> > {};

int main(){
  typedef Ciccio<int> test_type;
  Foo<test_type> f;
}