[libcxx-commits] [libcxx] [libc++][WIP] ADL-proof `std::__wrap_iter` (PR #107766)

A. Jiang via libcxx-commits libcxx-commits at lists.llvm.org
Fri Apr 11 03:05:51 PDT 2025


================
@@ -98,6 +98,14 @@
 // and WCHAR_MAX. This ABI setting determines whether we should instead track whether the fill
 // value has been initialized using a separate boolean, which changes the ABI.
 #  define _LIBCPP_ABI_IOS_ALLOW_ARBITRARY_FILL_VALUE
+// Change std::__wrap_iter<T> to not associate the namespaces associated with
+// T when unqualified lookup (e.g., with operators) is done. Also make it so
+// only std::__wrap_iter<pointer> and std::__wrap_iter<const_pointer> can
+// be used together (for comparison, conversion, etc.) instead of with any
+// wrapped iterator. So comprison between std::__wrap_iter<fancy_pointer<T>>
+// and std::__wrap_iter<T*> will no longer compile even if fancy_pointer<T>
+// is comparable with T*.
----------------
frederick-vs-ja wrote:

FYI I resolved most of the "Also..." part in #115271. The changes weren't ABI breaking, perhaps.

https://github.com/llvm/llvm-project/pull/107766


More information about the libcxx-commits mailing list