C++ ranges
C++20'nin standart algoritmaları baştan düzenleyen yeniliği: koleksiyon iki yineleyici yerine tek bir nesne olarak verilir ve dönüşümler boru işaretiyle zincirlenir.
Eski tarz std::sort(v.begin(), v.end()) yazmayı gerektirirdi ve iki yineleyici farklı kaplardan geliyorsa derleyici hiç yardım etmezdi. Ranges ile bu std::ranges::sort(v) olur. Asıl yenilik view'lardır: tembel, sahiplik taşımayan ve birleştirilebilen adaptörler — v | views::filter(even) | views::transform(square) | views::take(5) koleksiyonu tek geçişte, ara vektörler oluşturmadan dolaşır. Temeli Eric Niebler'in range-v3 kütüphanesidir. Şikâyetler derleme sürelerine, concept'lerle bile zor okunan hata iletilerine ve C++20'nin ranges::to olmadan gelmesine yönelir; bu da gerçek bir kap geri almayı gereksizce zahmetli kıldı. O, C++23'te geldi.