[libcxx-commits] [libcxx] [libc++] Optimize ranges::copy_backward for vector<bool>::iterator (PR #121026)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jan 29 09:22:22 PST 2025


================
@@ -997,9 +870,10 @@ private:
   template <class _Dp, bool _IC>
   _LIBCPP_CONSTEXPR_SINCE_CXX20 friend __bit_iterator<_Dp, false> __copy_backward_unaligned(
       __bit_iterator<_Dp, _IC> __first, __bit_iterator<_Dp, _IC> __last, __bit_iterator<_Dp, false> __result);
-  template <class _Dp, bool _IC>
-  _LIBCPP_CONSTEXPR_SINCE_CXX20 friend __bit_iterator<_Dp, false>
-  copy_backward(__bit_iterator<_Dp, _IC> __first, __bit_iterator<_Dp, _IC> __last, __bit_iterator<_Dp, false> __result);
+  // Note: dependent nested name specifier __copy_backward_impl<_AlgPolicy>::operator() for friend declaration
+  // is not supported in clang. Thus, we use a friend declaration for the entire class.
----------------
ldionne wrote:

```suggestion

```

I don't think this note adds enough value to pull its weight, I would leave it out.

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


More information about the libcxx-commits mailing list