[libcxx] contiguous iterator concept: don't require pointer or complete element types
authorJoe Loser <joeloser93@gmail.com>
Wed, 1 Sep 2021 12:32:34 +0000 (08:32 -0400)
committerJoe Loser <joeloser93@gmail.com>
Wed, 1 Sep 2021 12:32:41 +0000 (08:32 -0400)
commit2d400db63cfb3585fd5200e41f281447e3b6ca6a
tree4edbaee52a2d605e71e180dea8f5d98c943e4d09
parenta3d357e504875f4f6c2b3c2674eb84a7b4101cb9
[libcxx] contiguous iterator concept: don't require pointer or complete element types

`contiguous_iterator` requires the iterator type passed is either a
pointer type or that the element type of the iterator is a complete
object type. These constraints are not part of the current wording in
defining the `contiguous_iterator` concept - adjust the concept to
reflect this.

Inspired from discussion at https://reviews.llvm.org/D108645.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D108855
libcxx/include/__iterator/concepts.h
libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.compile.pass.cpp
libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp [new file with mode: 0644]