diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-03-27 23:21:58 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-03-27 23:26:03 +0000 |
commit | 81a8d137c22953df2ea046466c62cd26c0dba103 (patch) | |
tree | 91352bc2ddb369ad0874532af65cc54611d7639f /gcc/tree-ssa-reassoc.c | |
parent | ae6076b5bc1e0b689eaa8521571b0516de336553 (diff) | |
download | gcc-81a8d137c22953df2ea046466c62cd26c0dba103.zip gcc-81a8d137c22953df2ea046466c62cd26c0dba103.tar.gz gcc-81a8d137c22953df2ea046466c62cd26c0dba103.tar.bz2 |
libstdc++: Add remaining C++20 changes to iterator adaptors
This adds the missing parts of P0896R4 to reverse_iterator and
move_iterator, so that they meet the C++20 requirements. This should be
the last piece of P0896R4, meaning ranges support is now complete.
The PR 94354 bug with reverse_iterator's comparisons is fixed for C++20
only, but that change should be extended to C++11, C++14 and C++17 modes
in stage 1.
* include/bits/stl_iterator.h (reverse_iterator::iterator_concept)
(reverse_iterator::iterator_category): Define for C++20.
(reverse_iterator): Define comparison operators correctly for C++20.
(__normal_iterator): Add constraints to comparison operators for C++20.
(move_iterator::operator++(int)) [__cpp_lib_concepts]: Define new
overload for input iterators.
(move_iterator): Add constraints to comparison operators for C++20.
Define operator<=> for C++20.
* testsuite/24_iterators/move_iterator/input_iterator.cc: New test.
* testsuite/24_iterators/move_iterator/move_only.cc: New test.
* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: New test.
* testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: New test.
Diffstat (limited to 'gcc/tree-ssa-reassoc.c')
0 files changed, 0 insertions, 0 deletions