I'm facing problems with friend class templates. Here's how my code looks like
template<typename T>
class A{
private:
template<typename U>
friend class A;
int m_num = 0;
public:
//...
};
while
template <typename T>
class B{
private:
template<typename U>
friend class B;
template<typename U>
friend class A; // Set A as friend class template of B
public:
template<typename U>
int GetNumOfA(const A<U>& a){
return a.m_num; // Cannot Access A's private member!
}
};
I expected A's private members to be accessible since I declared A as friend class of B. But it couldn't access it. Could you help me figure out why this happens? Or any ideas to make m_num accessible from B?