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 に答える