[libcxx][test] {move,reverse}_iterator cannot be instantiated for a type with no `operator*`Since their nested reference types are defined in terms of `iter_reference_t<T>`, which examines `decltyp
[libcxx][test] {move,reverse}_iterator cannot be instantiated for a type with no `operator*`Since their nested reference types are defined in terms of `iter_reference_t<T>`, which examines `decltype(*declval<T>())`.Differential Revision: https://reviews.llvm.org/D117371
show more ...
[libc++] [test] Use hidden friends consistently in the test iterators.Differential Revision: https://reviews.llvm.org/D117397
[libcxx] Fix enable_if condition of std::reverse_iterator::operator=The template std::is_assignable<T, U> checks that T is assignable fromU. Hence, the order of operands in the instantiation ofst
[libcxx] Fix enable_if condition of std::reverse_iterator::operator=The template std::is_assignable<T, U> checks that T is assignable fromU. Hence, the order of operands in the instantiation ofstd::is_assignable in the std::reverse_iterator::operator= conditionshould be reversed.This issue remained unnoticed because std::reverse_iterator has animplicit conversion constructor. This patch adds a test to check thatthe assignment operator is used directly, without any implicitconversions. The patch also adds a similar test forstd::move_iterator.Reviewed By: Quuxplusone, ldionne, #libcDifferential Revision: https://reviews.llvm.org/D113417
[libc++] Implement LWG3435 (constraints on reverse_iterator and move_iterator)
[libc++] NFC: Tidy up the reverse_iterator testsIncidentally, that fixes an error with the modules build.