gcc/libstdc++-v3/testsuite/24_iterators
Jonathan Wakely 160061ac10 libstdc++: Introduce new headers for C++20 ranges components
This introduces two new headers:

<bits/ranges_base.h> defines the minimal components needed
for using C++20 ranges (customization point objects such as
std::ranges::begin, concepts such as std::ranges::range, etc.)

<bits/ranges_util.h> includes <bits/ranges_base.h> and additionally
defines subrange, which is needed by <bits/ranges_algo.h>.

Most of the content of <bits/ranges_base.h> was previously defined in
<bits/range_access.h>, but a few pieces were only defined in <ranges>.
This meant the entire <ranges> header was needed in <algorithm> and
<memory>, even though they don't use all the range adaptors.

By moving the ranges components out of <bits/range_access.h> that file
is left defining just the contents of [iterator.range] i.e. std::begin,
std::end, std::size etc. and not C++20 ranges components.

For consistency with other C++20 ranges headers, <bits/range_cmp.h> is
renamed to <bits/ranges_cmp.h>.

libstdc++-v3/ChangeLog:

	* include/Makefile.am: Add new headers and adjust for renamed
	header.
	* include/Makefile.in: Regenerate.
	* include/bits/iterator_concepts.h: Adjust for renamed header.
	* include/bits/range_access.h (ranges::*): Move to new
	<bits/ranges_base.h> header.
	* include/bits/ranges_algobase.h: Include new <bits/ranges_base.h>
	header instead of <ranges>.
	* include/bits/ranges_algo.h: Include new <bits/ranges_util.h>
	header.
	* include/bits/range_cmp.h: Moved to...
	* include/bits/ranges_cmp.h: ...here.
	* include/bits/ranges_base.h: New header.
	* include/bits/ranges_util.h: New header.
	* include/experimental/string_view: Include new
	<bits/ranges_base.h> header.
	* include/std/functional: Adjust for renamed header.
	* include/std/ranges (ranges::view_base, ranges::enable_view)
	(ranges::dangling, ranges::borrowed_iterator_t): Move to new
	<bits/ranges_base.h> header.
	(ranges::view_interface, ranges::subrange)
	(ranges::borrowed_subrange_t): Move to new <bits/ranges_util.h>
	header.
	* include/std/span: Include new <bits/ranges_base.h> header.
	* include/std/string_view: Likewise.
	* testsuite/24_iterators/back_insert_iterator/pr93884.cc: Add
	missing <ranges> header.
	* testsuite/24_iterators/front_insert_iterator/pr93884.cc:
	Likewise.
2020-09-22 15:45:54 +01:00
..
associated_types libstdc++: Fix std::indirectly_readable ambiguity [LWG 3446] 2020-08-24 16:18:31 +01:00
back_insert_iterator libstdc++: Introduce new headers for C++20 ranges components 2020-09-22 15:45:54 +01:00
bidirectional Update copyright years. 2020-01-01 12:51:42 +01:00
common_iterator libstdc++: Fix common_iterator::operator-> [PR95322] 2020-05-26 16:17:34 -04:00
contiguous Update copyright years. 2020-01-01 12:51:42 +01:00
counted_iterator libstdc++: Add a move-only testsuite iterator type 2020-03-03 22:44:35 -05:00
customization_points libstdc++: Avoid constraint recursion with iterator_traits (PR 93983) 2020-05-21 07:32:15 +01:00
forward Update copyright years. 2020-01-01 12:51:42 +01:00
front_insert_iterator libstdc++: Introduce new headers for C++20 ranges components 2020-09-22 15:45:54 +01:00
headers/iterator libstdc++: Ensure c++NN effective-target present in more tests 2020-07-31 19:58:03 +01:00
indirect_callable libstdc++: Replace deduced return type in ranges::iter_move (PR 92894) 2020-05-01 14:27:25 +01:00
input Update copyright years. 2020-01-01 12:51:42 +01:00
insert_iterator libstdc++: Implement LWG 561 for std::inserter 2020-08-10 12:09:59 +01:00
istream_iterator libstdc++: Fix noexcept-specifier for istream_iterator 2020-02-24 14:22:21 +00:00
istreambuf_iterator libstdc++: Add test for using istreambuf_iterator with sentinel 2020-04-20 22:06:32 +01:00
move_iterator libstdc++: Constrain reverse_iterator and move_iterator conversions [LWG 3435] 2020-07-22 15:10:29 +01:00
normal_iterator libstdc++: Fix __normal_iterator comparisons for C++20 2020-04-21 23:46:54 +01:00
operations Update copyright years. 2020-01-01 12:51:42 +01:00
ostream_iterator libstdc++: Change compile-only test to run 2020-03-10 09:47:15 +00:00
ostreambuf_iterator Update copyright years. 2020-01-01 12:51:42 +01:00
output Update copyright years. 2020-01-01 12:51:42 +01:00
random_access Update copyright years. 2020-01-01 12:51:42 +01:00
range_access Update copyright years. 2020-01-01 12:51:42 +01:00
range_operations libstdc++: test for failing assertion should use 'run' not 'compile' 2020-02-28 18:41:18 +00:00
reverse_iterator libstdc++: Constrain reverse_iterator and move_iterator conversions [LWG 3435] 2020-07-22 15:10:29 +01:00
aliases.cc libstdc++: Remove workarounds for constraints on alias templates 2020-02-05 15:09:23 +00:00
container_access.cc Update copyright years. 2020-01-01 12:51:42 +01:00