[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