https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92272

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Wed Oct 30 15:48:11 2019
New Revision: 277629

URL: https://gcc.gnu.org/viewcvs?rev=277629&root=gcc&view=rev
Log:
Apply C++20 changes to various iterator types

This ensures that __normal_iterator<T*, C> satisfies the
contiguous_iterator concept, by defining the iterator_concept member
type.

Also update vector<bool>'s iterators, reverse_iterator,
istreambuf_iterator and ostreambuf_iterator to meet the C++20
requirements.

        PR libstdc++/92272
        * include/bits/stl_bvector.h (_Bit_iterator::pointer)
        (_Bit_const_iterator::pointer): Define as void for C++20.
        * include/bits/stl_iterator.h (reverse_iterator::operator->()): Add
        constraints for C++20.
        (__normal_iterator::iterator_concept): Define for C++20.
        * include/bits/streambuf_iterator.h (istreambuf_iterator::pointer):
        Define as void for C++20.
        (ostreambuf_iterator::difference_type): Define as ptrdiff_t for C++20.
        (ostreambuf_iterator::ostreambuf_iterator()): Add default constructor
        for C++20.
        * testsuite/23_containers/vector/bool/iterator_c++20.cc: New test.
        * testsuite/24_iterators/bidirectional/concept.cc: New test.
        * testsuite/24_iterators/bidirectional/tag.cc: New test.
        * testsuite/24_iterators/contiguous/concept.cc: New test.
        * testsuite/24_iterators/contiguous/tag.cc: New test.
        * testsuite/24_iterators/forward/concept.cc: New test.
        * testsuite/24_iterators/forward/tag.cc: New test.
        * testsuite/24_iterators/input/concept.cc: New test.
        * testsuite/24_iterators/input/tag.cc: New test.
        * testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc:
        New test.
        * testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc:
        New test.
        * testsuite/24_iterators/output/concept.cc: New test.
        * testsuite/24_iterators/output/tag.cc: New test.
        * testsuite/24_iterators/random_access/concept.cc: New test.
        * testsuite/24_iterators/random_access/tag.cc: New test.
        * testsuite/24_iterators/range_operations/advance_debug_neg.cc: New
        test.
        * testsuite/24_iterators/random_access_iterator/26020.cc: Move to ...
        * testsuite/24_iterators/operations/26020.cc: ... here.
        * testsuite/24_iterators/random_access_iterator/
        string_vector_iterators.cc: Move to ...
        * testsuite/24_iterators/random_access/string_vector_iterators.cc: ...
        here.

Added:
    trunk/libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
    trunk/libstdc++-v3/testsuite/24_iterators/bidirectional/
    trunk/libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
    trunk/libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
    trunk/libstdc++-v3/testsuite/24_iterators/forward/
    trunk/libstdc++-v3/testsuite/24_iterators/forward/concept.cc
    trunk/libstdc++-v3/testsuite/24_iterators/forward/tag.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
    trunk/libstdc++-v3/testsuite/24_iterators/input/
    trunk/libstdc++-v3/testsuite/24_iterators/input/concept.cc
    trunk/libstdc++-v3/testsuite/24_iterators/input/tag.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
    trunk/libstdc++-v3/testsuite/24_iterators/operations/26020.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
    trunk/libstdc++-v3/testsuite/24_iterators/output/
    trunk/libstdc++-v3/testsuite/24_iterators/output/concept.cc
    trunk/libstdc++-v3/testsuite/24_iterators/output/tag.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
    trunk/libstdc++-v3/testsuite/24_iterators/random_access/
    trunk/libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
   
trunk/libstdc++-v3/testsuite/24_iterators/random_access/string_vector_iterators.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/random_access_iterator/string_vector_iterators.cc
    trunk/libstdc++-v3/testsuite/24_iterators/random_access/tag.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
   
trunk/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
      - copied, changed from r277628,
trunk/libstdc++-v3/testsuite/24_iterators/random_access_iterator/26020.cc
Removed:
    trunk/libstdc++-v3/testsuite/24_iterators/random_access_iterator/
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/stl_bvector.h
    trunk/libstdc++-v3/include/bits/stl_iterator.h
    trunk/libstdc++-v3/include/bits/streambuf_iterator.h
    trunk/libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
    trunk/libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
   
trunk/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
   
trunk/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc

Reply via email to