gcc/libstdc++-v3/include/std
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
..
algorithm
any
array libstdc++: Fix three-way comparison for std::array [PR 96851] 2020-09-02 15:32:11 +01:00
atomic libstdc++: Break long lines to fit in 80 columns 2020-08-05 22:48:17 +01:00
bit libstdc++: Replace __int_limits with __numeric_traits_integer 2020-07-07 23:36:29 +01:00
bitset
charconv libstdc++: Add std::from_chars for floating-point types 2020-07-20 23:49:27 +01:00
chrono libstdc++: Fix chrono::__detail::ceil to work with C++11 2020-09-11 19:59:11 +01:00
codecvt
complex libstdc++: Fix -Wmismatched-tags warnings (PR 96063) 2020-07-06 17:12:29 +01:00
concepts
condition_variable libstdc++: Avoid rounding errors on custom clocks in condition_variable 2020-09-11 14:28:50 +01:00
coroutine libstdc++, coroutine: Add missing constexpr markers. 2020-07-17 19:51:09 +01:00
deque
execution
filesystem
forward_list
fstream
functional libstdc++: Introduce new headers for C++20 ranges components 2020-09-22 15:45:54 +01:00
future libstdc++: Adjust static assertions in futures and promises [LWG 3466] 2020-08-25 15:52:57 +01:00
iomanip
ios
iosfwd
iostream
istream libstdc++: Adjust overflow prevention to operator>> 2020-08-06 18:26:45 +01:00
iterator
limits libstdc++: Make __int128 meet integer-class requirements [PR 96042] 2020-08-19 16:49:07 +01:00
list
locale
map
memory libstdc++: only pull in bits/align.h if C++11 or later 2020-09-11 14:08:13 -07:00
memory_resource libstdc++: Reduce monotonic_buffer_resource overallocation [PR 96942] 2020-09-10 15:41:53 +01:00
mutex
numbers
numeric libstdc++: Optimise GCD algorithms 2020-09-03 12:46:13 +01:00
optional libstdc++: Cleanup whitespace and type trait usage in <optional> 2020-07-06 21:55:50 +01:00
ostream
queue
random
ranges libstdc++: Introduce new headers for C++20 ranges components 2020-09-22 15:45:54 +01:00
ratio
regex
scoped_allocator
set
shared_mutex
span libstdc++: Introduce new headers for C++20 ranges components 2020-09-22 15:45:54 +01:00
sstream
stack
stdexcept
stop_token libstdc++: Fix <stop_token> to compile without gthreads 2020-08-11 16:16:21 +01:00
streambuf libstdc++: Add deprecated attributes to old iostream members 2020-08-19 12:13:23 +01:00
string
string_view libstdc++: Introduce new headers for C++20 ranges components 2020-09-22 15:45:54 +01:00
system_error libstdc++: Fix -Wmismatched-tags warnings (PR 96063) 2020-07-06 17:12:29 +01:00
thread libstdc++: Remove redundant copying of std::async arguments [PR 69724] 2020-08-18 14:28:38 +01:00
tuple libstdc++: Use correct argument type for __use_alloc, again [PR 96803] 2020-09-22 08:42:18 +01:00
type_traits libstdc++: Add deprecated attributes to old iostream members 2020-08-19 12:13:23 +01:00
typeindex
unordered_map
unordered_set
utility libstdc++: Replace __int_limits with __numeric_traits_integer 2020-07-07 23:36:29 +01:00
valarray libstdc++: Fix -Wmismatched-tags warnings (PR 96063) 2020-07-06 17:12:29 +01:00
variant libstdc++: Make variant_npos conversions explicit [PR 96766] 2020-08-24 16:10:07 +01:00
vector
version libstdc++: Fix macro redefinition warnings 2020-09-10 18:51:24 +01:00