Skip to content

Commit ee9f2e2

Browse files
mordantecopybara-github
authored andcommitted
[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: llvm/llvm-project#89898 NOKEYCHECK=True GitOrigin-RevId: d6c4ebbf78c67cd298f6ba2da6c06e2362f4d0f4
1 parent fb2a85d commit ee9f2e2

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

modules/std/ranges.inc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,17 @@ export namespace std {
141141
#if _LIBCPP_STD_VER >= 23
142142
// [range.adaptor.object], range adaptor objects
143143
using std::ranges::range_adaptor_closure;
144+
// Note: This declaration not in the synopsis or explicitly in the wording.
145+
// However it is needed for the range adaptors.
146+
// [range.adaptor.object]/3
147+
// The template parameter D for range_adaptor_closure may be an
148+
// incomplete type. If an expression of type cv D is used as an operand
149+
// to the | operator, D shall be complete and model
150+
// derived_from<range_adaptor_closure<D>>. The behavior of an expression
151+
// involving an object of type cv D as an operand to the | operator is
152+
// undefined if overload resolution selects a program-defined operator|
153+
// function.
154+
using std::ranges::operator|;
144155
#endif
145156

146157
// [range.all], all view

0 commit comments

Comments
 (0)