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