Currently structured bindings do not allow for nested bindings.

std::map<Identifier, std::pair<Handle, Context>> map;

// to get a copy of identifier, handle and info
for (const auto &[identifierRef, handleWithContextRef] : map)
{
auto identifier = identifierRef;
auto [handle, context] = handleWithContextRef;
}

// Suggested replacement
for(auto [identifier, (handle, context)]: map)
{
}

All sb-identifiers in the structured-binding-declaration will have the same reference qualifier.

Updated in the C++ grammar

sb-identifier :
...opt identifier attribute-specifier-seqopt
( sb-identifier-list ) // new production rule

sb-identifier-list :
sb-identifier
sb-identifier-list , sb-identifier

structured-binding-declaration :
attribute-specifier-seqopt decl-specifier-seq ref-qualifieropt [ sb-identifier-list ]


I have attached an argument that this won't cause any parsing ambiguities

--
Hari Hara Naveen