[libc++] Fix `_IterOps::__iter_move` to support proxy iterators.
The return type was specified incorrectly for proxy iterators that define `reference` to be a class that implicitly converts to `value_type`. `__iter_move` would end up returning an object of type `reference` which would then implicitly convert to `value_type`; thus, the function will return a `value_type&&` rvalue reference to the local temporary. Differential Revision: https://reviews.llvm.org/D130197
Loading
Please sign in to comment