all of E
's non-static data members
shall be direct members of E
of the same base class of E
well-formed when named as e.name
in the context of the structured binding,
shall not have an anonymous union member, and
the number of elements in the identifier-list
equal to the number of non-static data members of E.
Designating the non-static data members of E
(in declaration order),
name of an lvalue that refers to the member m
whose type is cv
is the declared type of
that member; the referenced type is cv .