[libcxx-commits] [PATCH] D126053: [libc++][ranges] Finish LWG issues directly related to the One Ranges Proposal.

Konstantin Varlamov via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jun 27 19:54:29 PDT 2022


var-const marked 5 inline comments as done.
var-const added inline comments.


================
Comment at: libcxx/include/__iterator/move_iterator.h:161
     reference operator*() const { return static_cast<reference>(*__current_); }
-    _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_AFTER_CXX14
+    _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_AFTER_CXX14
     pointer operator->() const { return __current_; }
----------------
ldionne wrote:
> Can we add a test for this deprecation? Example in `libcxx/test/std/utilities/memory/storage.iterator/deprecated.verify.cpp`.
Done. This uncovered a significant issue -- D117656 incorrectly removed this operator completely in C++20, rather than merely deprecating it. `move_iterator::operator->` is still defined (as deprecated) even in the latest draft, in http://eel.is/c++draft/depr.move.iter.elem.


================
Comment at: libcxx/include/algorithm:463-476
+namespace ranges {
+    template<class I1, class I2>
+    using swap_ranges_result = in_in_result<I1, I2>;
+
 template<input_iterator I1, sentinel_for<I1> S1, input_iterator I2, sentinel_for<I2> S2>
         requires indirectly_swappable<I1, I2>
     constexpr ranges::swap_ranges_result<I1, I2>
----------------
philnik wrote:
> Maybe just move this to the other algorithms?
I'd rather keep as is and do a dedicated cleanup patch for the algorithm synopsis to make sure we follow the ordering from the standard.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126053/new/

https://reviews.llvm.org/D126053



More information about the libcxx-commits mailing list