[libc++][ranges] Exports operator|. (#90071)
This was omitted in c1086532d4d5 and not detected by the CI since
clang-tidy is not running. This fixes the exports.
Fixes: https://github.com/llvm/llvm-project/issues/89898
GitOrigin-RevId: d6c4ebbf78c67cd298f6ba2da6c06e2362f4d0f4
diff --git a/modules/std/ranges.inc b/modules/std/ranges.inc
index 7d21586..80f31c7 100644
--- a/modules/std/ranges.inc
+++ b/modules/std/ranges.inc
@@ -141,6 +141,17 @@
#if _LIBCPP_STD_VER >= 23
// [range.adaptor.object], range adaptor objects
using std::ranges::range_adaptor_closure;
+ // Note: This declaration not in the synopsis or explicitly in the wording.
+ // However it is needed for the range adaptors.
+ // [range.adaptor.object]/3
+ // The template parameter D for range_adaptor_closure may be an
+ // incomplete type. If an expression of type cv D is used as an operand
+ // to the | operator, D shall be complete and model
+ // derived_from<range_adaptor_closure<D>>. The behavior of an expression
+ // involving an object of type cv D as an operand to the | operator is
+ // undefined if overload resolution selects a program-defined operator|
+ // function.
+ using std::ranges::operator|;
#endif
// [range.all], all view