Ranges — composable range transformations.
1#include <ranges>2#include <vector>34std::vector<int> v = {1, 2, 3, 4, 5, 6};56// Lazy pipeline7auto result = v8 | std::views::filter([](int n) { return n % 2 == 0; })9 | std::views::transform([](int n) { return n * n; });1011for (int n : result) {12 std::cout << n << " "; // 4 16 3613}
Views:
filter, transform, take, dropsplit, join, reverseiota (infinite sequence)Benefits: