[libcxx-commits] [libcxx] ca9b1d1 - [libc++] Make common_iterator's data member private (#72564)

via libcxx-commits libcxx-commits at lists.llvm.org
Tue Nov 21 13:23:03 PST 2023


Author: Louis Dionne
Date: 2023-11-21T16:22:59-05:00
New Revision: ca9b1d1ac77a6ac1d53ea233ba20ec77781a25b0

URL: https://github.com/llvm/llvm-project/commit/ca9b1d1ac77a6ac1d53ea233ba20ec77781a25b0
DIFF: https://github.com/llvm/llvm-project/commit/ca9b1d1ac77a6ac1d53ea233ba20ec77781a25b0.diff

LOG: [libc++] Make common_iterator's data member private (#72564)

Fixes #71498

Added: 
    

Modified: 
    libcxx/include/__iterator/common_iterator.h

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__iterator/common_iterator.h b/libcxx/include/__iterator/common_iterator.h
index 95e248d83f4b460..6e82b683600e954 100644
--- a/libcxx/include/__iterator/common_iterator.h
+++ b/libcxx/include/__iterator/common_iterator.h
@@ -63,9 +63,12 @@ class common_iterator {
     iter_value_t<_Iter> __value_;
   };
 
-public:
   variant<_Iter, _Sent> __hold_;
+  template<input_or_output_iterator _OtherIter, sentinel_for<_OtherIter> _OtherSent>
+    requires (!same_as<_OtherIter, _OtherSent> && copyable<_OtherIter>)
+  friend class common_iterator;
 
+public:
   _LIBCPP_HIDE_FROM_ABI common_iterator() requires default_initializable<_Iter> = default;
 
   _LIBCPP_HIDE_FROM_ABI constexpr common_iterator(_Iter __i) : __hold_(in_place_type<_Iter>, _VSTD::move(__i)) {}


        


More information about the libcxx-commits mailing list