Leksykon IT › Programowanie › Zakresy C++

Zakresy C++

Programowanie Svenska → Zaktualizowano: 2026-10-07

Przebudowa standardowych algorytmów w C++20: kolekcję przekazuje się jako jeden obiekt zamiast dwóch iteratorów, a przekształcenia łączy się potokiem.

Stary styl wymagał pisania std::sort(v.begin(), v.end()) i nie dawał kompilatorowi szansy na pomoc, jeśli oba iteratory pochodziły z różnych kontenerów. Z zakresami wystarczy std::ranges::sort(v). Większą nowością są widoki: leniwe, nieposiadające danych adaptery, które się składają — v | views::filter(even) | views::transform(square) | views::take(5) przechodzi kolekcję raz, bez tworzenia pośrednich wektorów. Fundamentem jest biblioteka range-v3 Erica Nieblera. Narzekania dotyczą czasu kompilacji, komunikatów błędów, które mimo konceptów pozostają trudne do czytania, oraz tego, że C++20 ukazał się bez ranges::to, przez co niepotrzebnie trudno było odzyskać prawdziwy kontener. Pojawiło się to dopiero w C++23.

← Wróć do leksykonu