diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-02-19 21:56:29 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-02-19 22:11:27 +0000 |
commit | 1b425f3ac516f7250e9f7eac7cd4fe0908ccfa4e (patch) | |
tree | 321b3a9f62e348b0f4b194be90395d0771d1e1bb | |
parent | 7433536b3d864c0d8d5180348690e1c280a3eaf2 (diff) | |
download | gcc-1b425f3ac516f7250e9f7eac7cd4fe0908ccfa4e.zip gcc-1b425f3ac516f7250e9f7eac7cd4fe0908ccfa4e.tar.gz gcc-1b425f3ac516f7250e9f7eac7cd4fe0908ccfa4e.tar.bz2 |
libstdc++: make common_iterator<I, S> require copyable<I> (LWG 3385)
* include/bits/stl_iterator.h (common_iterator): Add copyable<I>
requirement (LWG 3385).
* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust
expected declaration.
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_iterator.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ef91b80..7f3f887 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2020-02-19 Jonathan Wakely <jwakely@redhat.com> + * include/bits/stl_iterator.h (common_iterator): Add copyable<I> + requirement (LWG 3385). + * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust + expected declaration. + * include/std/ranges (take_while_view, drop_view, drop_while_view) (elements_view:_Iterator): Initialize data members (LWG 3364). diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h index fc9d442..372df22 100644 --- a/libstdc++-v3/include/bits/stl_iterator.h +++ b/libstdc++-v3/include/bits/stl_iterator.h @@ -1426,7 +1426,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// An iterator/sentinel adaptor for representing a non-common range. template<input_or_output_iterator _It, sentinel_for<_It> _Sent> - requires (!same_as<_It, _Sent>) + requires (!same_as<_It, _Sent>) && copyable<_It> class common_iterator { template<typename _Tp, typename _Up> diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc index 4d8eca3..fbe116b 100644 --- a/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc +++ b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc @@ -56,7 +56,7 @@ namespace std template<semiregular S> class move_sentinel; template<input_or_output_iterator I, sentinel_for<I> S> - requires (!same_as<I, S>) + requires (!same_as<I, S>) && copyable<I> class common_iterator; template<class I, class S> |