llvm-capstone/libcxx/include/__iterator
Louis Dionne 4d08eccd63
[libc++] Implement P2538R1 "ADL-proof std::projected" (#65411)
Notice that because Holder<Incomplete> is _possible_ to complete, but
_unsafe_ to complete, that means that Holder<Incomplete>* is basically
not an iterator and it's not even safe to ask if
input_iterator<Holder<Incomplete>*> because that _will_ necessarily
complete the type. So it's totally expected that we still cannot safely
ask e.g.


static_assert(std::indirect_unary_predicate<bool(&)(Holder<Incomplete>&),
Holder<Incomplete>*>);

or even

static_assert(!std::indirect_unary_predicate<int, Holder<Incomplete>*>);

This was originally uploaded as https://reviews.llvm.org/D119029 and I
picked it up here as part of the Github PR transition.

Co-authored-by: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
2023-09-15 10:09:38 -04:00
..
access.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
advance.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
back_insert_iterator.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
bounded_iter.h [libc++][hardening] Categorize most assertions inside the container classes. 2023-07-20 10:14:43 -07:00
common_iterator.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
concepts.h [libc++][PSTL] Parallelize random_access_iterator 2023-08-07 17:58:27 +02:00
counted_iterator.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
cpp17_iterator_concepts.h [libc++] Add concepts that ensure a given iterator meets the syntactic requirements 2023-06-09 08:38:22 -07:00
data.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
default_sentinel.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
distance.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
empty.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
erase_if_container.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
front_insert_iterator.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
incrementable_traits.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
indirectly_comparable.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
insert_iterator.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
istream_iterator.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
istreambuf_iterator.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
iter_move.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
iter_swap.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
iterator_traits.h [libc++] __iterator/readable_traits.h isn't standalone 2023-06-27 10:52:08 -07:00
iterator_with_data.h [libc++] Enable segmented iterator optimizations for join_view::iterator 2023-01-20 07:55:58 +01:00
iterator.h
mergeable.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
move_iterator.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
move_sentinel.h Fixing conflicting macro definitions between curses.h and the standard library. 2023-07-06 17:21:08 +00:00
next.h [libc++][NFC] Refactor return type enable_ifs to defaulted template arguments 2023-08-15 12:19:21 -07:00
ostream_iterator.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
ostreambuf_iterator.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
permutable.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
prev.h [libc++][NFC] Refactor return type enable_ifs to defaulted template arguments 2023-08-15 12:19:21 -07:00
projected.h [libc++] Implement P2538R1 "ADL-proof std::projected" (#65411) 2023-09-15 10:09:38 -04:00
ranges_iterator_traits.h [libc++][ranges] Implement the changes to node-based containers from P1206 (ranges::to): 2023-07-18 11:01:10 -07:00
readable_traits.h [libc++] __iterator/readable_traits.h isn't standalone 2023-06-27 10:52:08 -07:00
reverse_access.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
reverse_iterator.h [libc++][NFC] Rename iterator category checks to make it obvious that they check //only// the iterator category 2023-05-18 15:37:28 -07:00
segmented_iterator.h [libc++] Refactor deque::iterator algorithm optimizations 2023-01-19 20:11:43 +01:00
size.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
sortable.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
unreachable_sentinel.h [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x 2023-02-15 16:52:25 +01:00
wrap_iter.h [libc++][NFC] Refactor enable_ifs in defaulted arguments to defaulted template arguments 2023-08-18 13:08:18 -07:00