primary: "__builtin_offsetof" "("
typename"," offsetof_member_designator ")" offsetof_member_designator:
identifier| offsetof_member_designator "."
identifier| offsetof_member_designator "["
This extension is sufficient such that
#define offsetof(type , member ) __builtin_offsetof (type , member )
is a suitable definition of the
macro. In C++, type
may be dependent. In either case, member
may consist of a single identifier, or a sequence of member accesses and array references.