2

这是在 VS 2008 上编译的,但它似乎是模板的非标准用法。

template <class T>
class Foo
{
public:
  void bar(Foo<int> arg)
  {
    // do some stuff here
  }

  // more code ...
};

Foo<int>由于模板专业化包含在其自己的模板类的定义中,是否存在问题?

4

1 回答 1

4

这并不是真正的专业化——你只是说函数接受一个类型的参数Foo <int>——函数本身是 Foo 类的成员这一事实并不重要。是的,这是合法的。

于 2010-05-19T10:54:20.283 回答