Files
2025-10-25 03:02:53 +03:00

1.6 KiB
Raw Permalink Blame History

[range.adaptors.general]

25 Ranges library [ranges]

25.7 Range adaptors [range.adaptors]

25.7.1 General [range.adaptors.general]

1

#

Subclause [range.adaptors] defines range adaptors, which are utilities that transform a range into a view with custom behaviors.

These adaptors can be chained to create pipelines of range transformations that evaluate lazily as the resulting view is iterated.

2

#

Range adaptors are declared in namespace std::ranges::views.

3

#

The bitwise or operator is overloaded for the purpose of creating adaptor chain pipelines.

The adaptors also support function call syntax with equivalent semantics.

4

#

[Example 1: vector ints{0,1,2,3,4,5};auto even = [](int i) { return 0 == i % 2; };auto square = [](int i) { return i * i; };for (int i : ints | views::filter(even) | views::transform(square)) { cout << i << ' '; // prints 0 4 16} assert(ranges::equal(ints | views::filter(even), views::filter(ints, even))); — end example]