libstdc++: Implement P1878R1 "Constraining Readable Types"
authorJonathan Wakely <jwakely@redhat.com>
Thu, 6 Feb 2020 11:21:25 +0000 (11:21 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Fri, 7 Feb 2020 16:58:43 +0000 (16:58 +0000)
commitc8dd2446f597e6d1581414a9c02ff329285181a9
tree2bd00d96b1d21587481af2fa80055328911e0f73
parentd222d8ec3c100f5c0a6974e7dcee16903f6f0e3a
libstdc++: Implement P1878R1 "Constraining Readable Types"

* include/bits/iterator_concepts.h (iter_difference_t, iter_value_t):
Use remove_cvref_t.
(readable_traits): Rename to indirectly_readable_traits.
(readable): Rename to indirectly_readable.
(writable): Rename to indirectly_writable.
(__detail::__iter_exchange_move): Do not use remove_reference_t.
(indirectly_swappable): Adjust requires expression parameter types.
expression.
* include/bits/ranges_algo.h (ranges::transform, ranges::replace)
(ranges::replace_if, ranges::generate_n, ranges::generate)
(ranges::remove): Use new name for writable.
* include/bits/stl_iterator.h (__detail::__common_iter_has_arrow):
Use new name for readable.
* include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use
new name for readable_traits.
* testsuite/24_iterators/associated_types/readable.traits.cc: Likewise.
* testsuite/24_iterators/indirect_callable/projected.cc: Adjust for
new definition of indirectly_readable.
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/iterator_concepts.h
libstdc++-v3/include/bits/ranges_algo.h
libstdc++-v3/include/bits/stl_iterator.h
libstdc++-v3/include/ext/pointer.h
libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc