标准库提供了许多有用的“是”类型特征,这些特征描述了两个类的关系,例如is_base_of
,is_convertible
,is_same
等。有什么方法可以实现类型is_friend
来告诉A类是否是B类的朋友?
示例代码:
class A {};
class B { friend class A; };
class C { friend class B; };
is_friend<A, B>; // true
is_friend<B, A>; // false
is_friend<B, C>; // true
is_friend<A, C>; // false
答案 0 :(得分:0)
否,这是不可能的。在您的示例中,B
中的任何内容都没有任何访问限制,因此A
的友情无效。由于友谊既不会继承也不会传递,因此无法使用诸如从相关类继承并添加私人成员之类的技巧。