// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } #include #include constexpr bool test01() { // PR libstdc++/102358 int x[2] = {1,2}, y[2]; std::span in(x), out(y); std::move(std::move_iterator(in.begin()), std::move_iterator(in.end()), out.begin()); return std::equal(std::move_iterator(in.begin()), std::move_iterator(in.end()), std::move_iterator(out.begin())); } static_assert(test01()); constexpr bool test02() { int x[2] = {1,2}, y[2]; std::span in(x), out(y); std::move(in.rbegin(), in.rend(), out.rbegin()); return std::equal(in.rbegin(), in.rend(), out.rbegin()); } static_assert(test02());