Стандартная библиотека предоставляет много полезных типографских наборов "is", которые говорят о взаимосвязи двух классов, таких как 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