小ネタ:friend classの一括管理

元ネタ:Boost::Serializationの

class Member
{
  // ここで一括管理できる
  friend class Hoge;
  friend class Hage;
  friend class Fuga;

private:
  template<typename T>
  static void func(T& t)
  {
    t.func();
  }
};

class Himitu
{
  friend class Member;
private:
  void func();
};

class Himitu2
{
  friend class Member;
private:
  void func();
};