Friend with own class template with other template parameter

Friend with own class template with other template parameter

是否可以将您自己的 class 模板与其他模板参数声明为好友?

template<class T, class... Ts>
class A {
    template<class U> friend class A<U, Ts...>;    //compile error - C3772  'A<U>': invalid friend template declaration 
};
template<class T, class... Ts>
class A {
    template<class U, class... Us> friend class A; //here you go
};

A

后无需指定模板参数

class 模板的部分特化不能声明为友元。仅(完整)专业化或整个 class 模板。如果你真的需要加好友所有 U 专长,你需要加好友整个模板:

template<class U, class... Us> friend class A;