在C++中声明该类的对象时,我可以将模板类'指针作为参数吗?

Eni*_*nis 3 c++ templates

这是问题的代码版本:

   template <class T>
   class Foo
   {
       //Stuff
   }
   Foo<Foo*> object;
Run Code Online (Sandbox Code Playgroud)

编译这个给了我:

"模板参数1是无效错误."

我的问题是,

  • 如果可以执行上述预期的操作,如果可以,那么该方法的工作原理和原因是什么?
  • 如果不可能,我猜它是因为模板参数本身内部有一个循环引用(例如Foo<Foo<Foo<.....>>>但如果我的想法不正确,请告诉我正确的理由.

我也尝试了前进声明Foo,但是没有用.

son*_*yao 6

Foo 需要一个模板参数,你可以:

Foo<Foo<int>*> object; 
Run Code Online (Sandbox Code Playgroud)