More Ranges Please
summary
Argues that C++20/23 ranges need concrete, lazy algorithms: implements ideas for a merge view and variadic/multiway merges (O(s log p) with a heap) instead of eagerly sorting sp cells, shows nth_element cuts work vs full sort, and proposes a histogram built by chunk+transform and an permutation concept* (order) that computes indices instead of swapping to avoid expensive moves and enable lazy, threadβfriendly reordering; prototypes live in rangesβv3 and an attempted Boost implementation and map to C++26 roadmap and D language precedents.
AI-written summary Β· about
chapters (14)
- 0:00Introduction and speaker background
- 1:57Ranges library as a breakthrough
- 8:55Evolution of ranges in C++20 and C++23
- 10:41Factories and rank-preserving adapters
- 15:39Rank-preserving adapters with conversions
- 19:31Rank-decreasing adapters
- 23:24Lazy evaluation in ranges
- 24:50What makes a good library
- 33:01Writing your own libraries
- 39:23How to write libraries effectively
- 44:02Catching rabbits: Hunt method example
- 51:08Proposal for merge and sorted range adapters
- 57:55Breaking apart sort and permutations
- 1:00:29Summary and call to action
