次のことをしたいのですが。
template <typename T>
struct foo
{
template <typename S>
friend struct foo<S>;
private:
// ...
};
しかし、私のコンパイラ(VC8)はそれに窒息します:
error C3857: 'foo<T>': multiple template parameter lists are not allowed
私はすべての人のtemplate struct foo
友人のfoo<T>
すべての可能なインスタンス化をしたいと思いますT
。
これを機能させるにはどうすればよいですか?
編集:これ
template <typename T>
struct foo
{
template <typename>
friend struct foo;
private:
// ...
};
コンパイルしているようですが、正しいですか?フレンドとテンプレートの構文は非常に不自然です。