- Quality-of-implementation: Avoid calling __unwrap_iter in constexpr contexts.
The user might conceivably write a contiguous iterator where normal iterator
arithmetic is constexpr-friendly but `std::to_address(it)` isn't.
- Bugfix: When you pass contiguous iterators to `std::copy`, you should get
back your contiguous iterator type, not a raw pointer. That means that
libc++ can't `__unwrap_iter` unless it also does `__rewrap_iter`.
Fortunately, this is implementable.
- Improve test coverage of the new `contiguous_iterator` test iterator.
This catches the bug described above.
- Tests: Stop testing that we can `std::copy` //into// an `input_iterator`.
Our test iterators may currently support that, but it seems nonsensical to me.
Differential Revision: https://reviews.llvm.org/D95983
|
||
|---|---|---|
| .. | ||
| alg.copy | ||
| alg.fill | ||
| alg.generate | ||
| alg.move | ||
| alg.partitions | ||
| alg.random.sample | ||
| alg.random.shuffle | ||
| alg.remove | ||
| alg.replace | ||
| alg.reverse | ||
| alg.rotate | ||
| alg.shift | ||
| alg.swap | ||
| alg.transform | ||
| alg.unique | ||