【发布时间】:2011-03-18 14:14:22
【问题描述】:
我想做以下事情:
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
我希望所有T 的foo<T> 朋友的template struct foo 的所有可能实例化。
我该如何进行这项工作?
编辑:这个
template <typename T>
struct foo
{
template <typename>
friend struct foo;
private:
// ...
};
似乎可以编译,但它正确吗?好友和模板的语法非常不自然。
【问题讨论】: