Modifiers & Limitations
To further specify the nature of our structured bindings, we can use modifier types.
We'll cover the following...
Several modifiers can be used with structured bindings.
const
modifiers:
Press + to interact
const auto [a, b, c, ...] = expression;
References:
Press + to interact
auto& [a, b, c, ...] = expression;auto&& [a, b, c, ...] = expression;
For example:
Press + to interact
#include <iostream>using namespace std;int main() {std::pair a(0, 1.0f);auto& [x, y] = a;x = 10; // write accessstd::cout << a.first;// a.first is now 10}
In the example, x
binds to the element in the generated object, that is a reference to a
.
Now it’s also quite easy to get a reference to a tuple member: ...