设模板函数为友元时出错,该如何解决

设模板函数为友元时出错
vc7.1

namespace   Test
{
template <typename   T>
inline   void   get(   T   &   t   )
{
}

class   A
{
template <typename   T>
friend   inline   void   get(   T   &   t   );
};
}

class   B
{
friend   class   A;

int   value;
};

namespace   Test
{
template <>
inline   void   get(   B   &   b   )
{
b.value   =   0;
}
}

error   C2248:   “B::value”   :   无法访问   private   成员(在“B”类中声明)


------解决方案--------------------
C++ 中,
友元关系不能传递
------解决方案--------------------
有些“好像”其实不是那么真的“像”。友元不能传递,你现在的代码是错的。
boost的代码,你也肯定没看仔细。
------解决方案--------------------
C++ 中,
友元关系不能传递
所以 get 可以访问 A 的private 成员,
但是无法访问 B 的private 成员,
导致出错

同意