我想让A<T>
成为A<T2>
的朋友,适用于任何类型T
和T2
。
这可能吗?
感谢。
测试(也在godbolt.org):
template <class T>
class A {
public:
template <typename T2> void test(A<T2>& a) { a.v_ = 2;}
private:
int v_;
template <typename T2> friend A;
};
int main() {
A<int> a;
A<int> b;
b.test(a);
return 0;
}
编译器错误:
<source>:7:28: error: friend type templates must use an elaborated type
template <typename T2> friend A;
^~~~~~~~
答案 0 :(得分:2)
应该是
template <typename T2> friend class A;