Structured binding — decompose aggregates into named variables.
1// With pair/tuple2auto [x, y] = std::make_pair(1, 2.0);34// With arrays5int arr[] = {10, 20, 30};6auto [a, b, c] = arr;78// With structs9struct Point { int x; int y; };10Point p{1, 2};11auto [px, py] = p;
With maps:
1std::map<std::string, int> m = {{"a", 1}};2for (const auto& [key, value] : m) {3 std::cout << key << ": " << value;4}
Requirements: