r278370 - in /trunk/libstdc++-v3: ChangeLog inc...

redi@gcc.gnu.org redi@gcc.gnu.org
Sun Nov 17 01:07:00 GMT 2019


Author: redi
Date: Sun Nov 17 01:07:54 2019
New Revision: 278370

URL: https://gcc.gnu.org/viewcvs?rev=278370&root=gcc&view=rev
Log:
libstdc++: Define C++20 range utilities and range factories

This adds another chunk of the <ranges> header.

The changes from P1456R1 (Move-only views) and P1862R1 (Range adaptors
for non-copyable iterators) are included, but not the changes from
P1870R1 (forwarding-range<T> is too subtle).

The tests for subrange and iota_view are poor and should be improved.

	* include/bits/regex.h (match_results): Specialize __enable_view_impl.
	* include/bits/stl_set.h (set): Likewise.
	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
	Likewise.
	* include/debug/multiset.h (__debug::multiset): Likewise.
	* include/debug/set.h (__debug::set): Likewise.
	* include/debug/unordered_set (__debug::unordered_set)
	(__debug::unordered_multiset): Likewise.
	* include/std/ranges (ranges::view, ranges::enable_view)
	(ranges::view_interface, ranges::subrange, ranges::empty_view)
	(ranges::single_view, ranges::views::single, ranges::iota_view)
	(ranges::views::iota): Define for C++20.
	* testsuite/std/ranges/empty_view.cc: New test.
	* testsuite/std/ranges/iota_view.cc: New test.
	* testsuite/std/ranges/single_view.cc: New test.
	* testsuite/std/ranges/view.cc: New test.

Added:
    trunk/libstdc++-v3/testsuite/std/ranges/empty_view.cc
    trunk/libstdc++-v3/testsuite/std/ranges/iota_view.cc
    trunk/libstdc++-v3/testsuite/std/ranges/single_view.cc
    trunk/libstdc++-v3/testsuite/std/ranges/view.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/regex.h
    trunk/libstdc++-v3/include/bits/stl_multiset.h
    trunk/libstdc++-v3/include/bits/stl_set.h
    trunk/libstdc++-v3/include/bits/unordered_set.h
    trunk/libstdc++-v3/include/debug/multiset.h
    trunk/libstdc++-v3/include/debug/set.h
    trunk/libstdc++-v3/include/debug/unordered_set
    trunk/libstdc++-v3/include/std/ranges



More information about the Libstdc++-cvs mailing list