@@ -24,7 +24,7 @@ auto main() -> int { // NOLINT(bugprone-exception-escape)
2424 multi::array<int , 1 > arr1 ({10 }, 5 );
2525 multi::array<int , 1 > arr2 ({10 }, 6 );
2626
27- auto zp = std::views::zip (arr1, arr2);
27+ auto && zp = std::views::zip (arr1, arr2);
2828
2929 auto [e1 , e2 ] = zp[3 ];
3030
@@ -35,12 +35,12 @@ auto main() -> int { // NOLINT(bugprone-exception-escape)
3535 multi::array<int , 1 > arr1 ({10 }, 5 );
3636 multi::array<int , 1 > arr2 ({10 }, 6 );
3737
38- auto es1 = arr1.elements ();
39- auto es2 = arr2.elements ();
38+ auto && es1 = arr1.elements ();
39+ auto && es2 = arr2.elements ();
4040
41- auto zp = std::views::zip (arr1, arr2);
41+ auto && zp = std::views::zip (arr1, arr2);
4242
43- auto [e1 , e2 ] = zp[3 ];
43+ auto && [e1 , e2 ] = zp[3 ];
4444
4545 BOOST_TEST ( e1 == 5 );
4646 BOOST_TEST ( e2 == 6 );
@@ -49,9 +49,9 @@ auto main() -> int { // NOLINT(bugprone-exception-escape)
4949 multi::array<int , 1 > arr1 ({10 }, 5 );
5050 multi::array<int , 1 > arr2 ({10 }, 6 );
5151
52- auto zp = std::views::zip (arr1.elements (), arr2.elements ());
52+ auto && zp = std::views::zip (arr1.elements (), arr2.elements ());
5353
54- auto [e1 , e2 ] = zp[3 ];
54+ auto && [e1 , e2 ] = zp[3 ];
5555
5656 BOOST_TEST ( e1 == 5 );
5757 BOOST_TEST ( e2 == 6 );
@@ -60,9 +60,9 @@ auto main() -> int { // NOLINT(bugprone-exception-escape)
6060 multi::array<int , 1 > arr1 ({10 }, 5 );
6161 multi::array<int , 1 > arr2 ({10 }, 6 );
6262
63- auto zp = std::views::zip (arr1 (), arr2 ());
63+ auto && zp = std::views::zip (arr1 (), arr2 ());
6464
65- auto [e1 , e2 ] = zp[3 ];
65+ auto && [e1 , e2 ] = zp[3 ];
6666
6767 BOOST_TEST ( e1 == 5 );
6868 BOOST_TEST ( e2 == 6 );
@@ -74,9 +74,9 @@ auto main() -> int { // NOLINT(bugprone-exception-escape)
7474 auto es1 = arr1 ().elements ();
7575 auto es2 = arr2 ().elements ();
7676
77- auto zp = std::views::zip (arr1, arr2 );
77+ auto && zp = std::views::zip (es1, es2 );
7878
79- auto [e1 , e2 ] = zp[3 ];
79+ auto && [e1 , e2 ] = zp[3 ];
8080
8181 BOOST_TEST ( e1 == 5 );
8282 BOOST_TEST ( e2 == 6 );
@@ -85,9 +85,45 @@ auto main() -> int { // NOLINT(bugprone-exception-escape)
8585 multi::array<int , 1 > arr1 ({10 }, 5 );
8686 multi::array<int , 1 > arr2 ({10 }, 6 );
8787
88- auto zp = std::views::zip (arr1 ().elements (), arr2 ().elements ());
88+ auto && zp = std::views::zip (arr1 ().elements (), arr2 ().elements ());
8989
90- auto [e1 , e2 ] = zp[3 ];
90+ auto && [e1 , e2 ] = zp[3 ];
91+
92+ BOOST_TEST ( e1 == 5 );
93+ BOOST_TEST ( e2 == 6 );
94+ }
95+ {
96+ multi::array<int , 2 > arr1 ({10 , 10 }, 5 );
97+ multi::array<int , 2 > arr2 ({10 , 10 }, 6 );
98+
99+ auto && zp = std::views::zip (arr1.elements (), arr2.elements ());
100+
101+ auto && [e1 , e2 ] = zp[3 ];
102+
103+ BOOST_TEST ( e1 == 5 );
104+ BOOST_TEST ( e2 == 6 );
105+ }
106+ {
107+ multi::array<int , 2 > arr1 ({10 , 10 }, 5 );
108+ multi::array<int , 2 > arr2 ({10 , 10 }, 6 );
109+
110+ auto && es1 = arr1 ().elements ();
111+ auto && es2 = arr2 ().elements ();
112+
113+ auto && zp = std::views::zip (es1, es2);
114+
115+ auto && [e1 , e2 ] = zp[3 ];
116+
117+ BOOST_TEST ( e1 == 5 );
118+ BOOST_TEST ( e2 == 6 );
119+ }
120+ {
121+ multi::array<int , 2 > arr1 ({10 , 10 }, 5 );
122+ multi::array<int , 2 > arr2 ({10 , 10 }, 6 );
123+
124+ auto && zp = std::views::zip (arr1 ().elements (), arr2 ().elements ());
125+
126+ auto && [e1 , e2 ] = zp[3 ];
91127
92128 BOOST_TEST ( e1 == 5 );
93129 BOOST_TEST ( e2 == 6 );
0 commit comments