libstdc++: Add std::span::at for C++26 (P2821R5)
commit1fa85dcf656e2f2c7e483c9ed3c2680bf7db6858
authorJonathan Wakely <jwakely@redhat.com>
Sat, 18 Nov 2023 21:07:47 +0000 (18 21:07 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 21 Nov 2023 15:58:21 +0000 (21 15:58 +0000)
tree1ecd3c226a8d7bb66e12b193e3d09ac233ee11f3
parent49f7620a12e35f40bb1f6088d16bde9b061dc819
libstdc++: Add std::span::at for C++26 (P2821R5)

Also define the new feature test macros from P2833R2, indicating that
std::span and std::expected are supported for freestanding mode.

libstdc++-v3/ChangeLog:

* include/bits/version.def (freestanding_expected): New macro.
(span): Add C++26 value.
* include/bits/version.h: Regenerate.
* include/std/expected (__glibcxx_want_freestanding_expected):
Define.
* include/std/span (span::at): New member function.
* testsuite/20_util/expected/version.cc: Add checks for
__cpp_lib_freestanding_expected.
* testsuite/23_containers/span/2.cc: Moved to...
* testsuite/23_containers/span/version.cc: ...here. Add checks
for __cpp_lib_span in <span> as well as in <version>.
* testsuite/23_containers/span/1.cc: Removed.
* testsuite/23_containers/span/at.cc: New test.
libstdc++-v3/include/bits/version.def
libstdc++-v3/include/bits/version.h
libstdc++-v3/include/std/expected
libstdc++-v3/include/std/span
libstdc++-v3/testsuite/20_util/expected/version.cc
libstdc++-v3/testsuite/23_containers/span/1.cc [deleted file]
libstdc++-v3/testsuite/23_containers/span/at.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/version.cc [moved from libstdc++-v3/testsuite/23_containers/span/2.cc with 64% similarity]