Structured bindings were introduced in C++17.
They allow the decomposition of arrays, tuples and non-static data members into named identifiers.
The original object is captured following the standard deduction rules for auto; the identifiers are effectively transparent references into the captured object.