1 // P0614R1 2 // { dg-do run } 3 // { dg-options "-std=c++2a" } 4 5 struct A { int i; long long j; } a[64]; 6 7 int main()8main () 9 { 10 for (int i = 0; auto &x : a) 11 { 12 x.i = i; 13 x.j = 2 * i++; 14 } 15 for (auto & [ x, y ] : a) 16 { 17 x += 2; 18 y += 3; 19 } 20 for (int i = 0; const auto [ u, v ] : a) 21 { 22 if (u != i + 2 || v != 2 * i++ + 3) 23 __builtin_abort (); 24 } 25 for (int i = 0; auto [ x, y ] : a) 26 { 27 x += 4; 28 y += 5; 29 if (x != i + 6 || y != 2 * i++ + 8) 30 __builtin_abort (); 31 } 32 for (int i = 0; const auto x : a) 33 { 34 if (x.i != i + 2 || x.j != 2 * i++ + 3) 35 __builtin_abort (); 36 } 37 } 38