模板的朋友
我想要做以下事情:
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所有可能的实例template struct foo朋友foo<T> 。 
我该如何做这项工作?
编辑:这个
 template <typename T> struct foo { template <typename> friend struct foo; private: // ... }; 
似乎编译,但它是正确的? 朋友和模板有非常不自然的语法。
 template<typename> friend class foo 
这将使所有的模板成为彼此的朋友。 但我认为这是你想要的?