...

/

Modifiers & Limitations

Modifiers & Limitations

To further specify the nature of our structured bindings, we can use modifier types.

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 access
std::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: ...