[libcxx-commits] [PATCH] D118213: [libc++] [ranges] ADL-proof ranges::iter_{swap, move}.

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jan 25 20:41:17 PST 2022


Quuxplusone created this revision.
Quuxplusone added reviewers: ldionne, philnik, var-const, Mordante, libc++.
Quuxplusone added a project: libc++.
Quuxplusone requested review of this revision.
Herald added a subscriber: libcxx-commits.
Herald added 1 blocking reviewer(s): libc++.

As discovered in D117817 <https://reviews.llvm.org/D117817>, `std::ranges::input_range<Holder<Incomplete>*[10]>`
hard-errored before this patch. That's because `input_range` requires
`iter_rvalue_reference_t`, which requires `iter_move`, which was
not ADL-proofed.

Add ADL-proofing tests to all the range refinements.
`output_range` and `common_range` shouldn't be affected,
and all the others subsume `input_range` anyway, but we might as
well be thorough.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D118213

Files:
  libcxx/include/__iterator/iter_move.h
  libcxx/include/__iterator/iter_swap.h
  libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp
  libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.swap/iter_swap.pass.cpp
  libcxx/test/std/ranges/range.req/range.refinements/bidirectional_range.compile.pass.cpp
  libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp
  libcxx/test/std/ranges/range.req/range.refinements/contiguous_range.compile.pass.cpp
  libcxx/test/std/ranges/range.req/range.refinements/forward_range.compile.pass.cpp
  libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp
  libcxx/test/std/ranges/range.req/range.refinements/output_range.compile.pass.cpp
  libcxx/test/std/ranges/range.req/range.refinements/random_access_range.compile.pass.cpp
  libcxx/test/std/ranges/range.req/range.refinements/viewable_range.compile.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D118213.403125.patch
Type: text/x-patch
Size: 26349 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220126/6670c95d/attachment-0001.bin>


More information about the libcxx-commits mailing list