[PATCH] libstdc++: Define __cpp_lib_containers_ranges in appropariate headers [PR111055]
Jonathan Wakely
jwakely@redhat.com
Fri Apr 11 11:38:51 GMT 2025
Spelling of "appropriate" in the summary line.
On 11/04/25 13:18 +0200, Tomasz Kamiński wrote:
>This is final piece of P1206R7, adding a feature test macros,
>as range constructors and member operations are now implemented for
>all containers and adaptors.
>
>For consistency with the proposal, all new container operations and
>helpers are now defined if __glibcxx_containers_ranges, instead
>of __glibcxx_containers_ranges.
The second one should be __glibcxx_ranges_to_container, right?
>
> PR libstdc++/111055
>
>libstdc++-v3/ChangeLog:
>
> * include/bits/version.def: Define containers_ranges feature test
> macro.
This should be:
* include/bits/version.def (containers_ranges): Define.
> * include/bits/version.h: Regenerate.
> * include/bits/ranges_base.h (__detail::__container_compatible_range)
> (__detail::__range_to_alloc_type, __detail::__range_mapped_type)
> (__detail::__range_key_type): Define if __glibcxx_containers_ranges.
This reads to me like they're being defined for the first time, so
maybe "Depend on __glibcxx_containers_ranges instead of
__glibcxx_ranges_to_container".
> * include/bits/basic_string.h: Replace __glibcxx_ranges_to_container with
> __glibcxx_containers_ranges.
> * include/bits/cow_string.h: Likewise.
> * include/bits/deque.tcc: Likewise.
> * include/bits/forward_list.h: Likewise.
> * include/bits/stl_bvector.h: Likewise.
> * include/bits/stl_deque.h: Likewise.
> * include/bits/stl_list.h: Likewise.
> * include/bits/stl_map.h: Likewise.
> * include/bits/stl_multimap.h: Likewise.
> * include/bits/stl_multiset.h: Likewise.
> * include/bits/stl_queue.h: Likewise.
> * include/bits/stl_set.h: Likewise.
> * include/bits/stl_stack.h: Likewise.
> * include/bits/stl_vector.h: Likewise.
> * include/bits/unordered_map.h: Likewise.
> * include/bits/unordered_set.h: Likewise.
> * include/bits/vector.tcc: Likewise.
> * include/debug/deque: Likewise.
> * include/debug/forward_list: Likewise.
> * include/debug/list: Likewise.
> * include/debug/map.h: Likewise.
> * include/debug/multimap.h: Likewise.
> * include/debug/multiset.h: Likewise.
> * include/debug/set.h: Likewise.
> * include/debug/unordered_map: Likewise.
> * include/debug/unordered_set: Likewise.
> * include/debug/vector: Likewise.
> * include/std/deque: Provide __cpp_lib_containers_ranges.
> * include/std/forward_list: Likewise.
> * include/std/list: Likewise.
> * include/std/map: Likewise.
> * include/std/queue: Likewise.
> * include/std/set: Likewise.
> * include/std/stack: Likewise.
> * include/std/string: Likewise.
> * include/std/unordered_map: Likewise.
> * include/std/unordered_set: Likewise.
> * include/std/vector: Likewise.
> * testsuite/21_strings/basic_string/cons/from_range.cc: Test for value
> __cpp_lib_containers_ranges.
> * testsuite/23_containers/deque/cons/from_range.cc: Likewise.
> * testsuite/23_containers/forward_list/cons/from_range.cc: Likewise.
> * testsuite/23_containers/list/cons/from_range.cc: Likewise.
> * testsuite/23_containers/map/cons/from_range.cc: Likewise.
> * testsuite/23_containers/multimap/cons/from_range.cc: Likewise.
> * testsuite/23_containers/multiset/cons/from_range.cc: Likewise.
> * testsuite/23_containers/priority_queue/cons_from_range.cc: Likewise.
> * testsuite/23_containers/queue/cons_from_range.cc: Likewise.
> * testsuite/23_containers/set/cons/from_range.cc: Likewise.
> * testsuite/23_containers/stack/cons_from_range.cc: Likewise.
> * testsuite/23_containers/unordered_map/cons/from_range.cc: Likewise.
> * testsuite/23_containers/unordered_multimap/cons/from_range.cc: Likewise.
> * testsuite/23_containers/unordered_multiset/cons/from_range.cc: Likewise.
> * testsuite/23_containers/unordered_set/cons/from_range.cc: Likewise.
> * testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
> * testsuite/23_containers/vector/cons/from_range.cc: Likewise.
>---
>Tested on x86_64-linux. OK for trunk?
OK with the tweaks to the commit message above, thanks!
More information about the Libstdc++
mailing list