Beispiel #1
0
inline const Parent *parent_from_member(const Member *member,
                                        const Member Parent::*ptr_to_member)
{
  return static_cast<const Parent *>(static_cast<const void *>(
      static_cast<const char *>(static_cast<const void *>(member)) -
      offset_from_pointer_to_member(ptr_to_member)));
}
inline const Parent *parent_from_member(const Member *member, const Member Parent::* ptr_to_member)
{
   return (const Parent*)((const char*)member - 
      offset_from_pointer_to_member(ptr_to_member));
}