From Iterators to Ranges: The Upcoming Evolution Of the STL
summary
A practical STL evolution shows a production range library running for 1 million lines over 12 years and compares range-v3 and the Ranges TS, demonstrating concrete choices: adapter implementations that shrink iterator state to two pointers via indices instead of iterators, generator-style internal iteration for concat and complex traversals, and automatic aggregation of rvalue inputs so lazy views remain safe. Benchmarks and experience report real performance and usability wins and the library works in production.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:37Why Ranges?
- 1:40Why do I think I know something about ranges?
- 2:33Ranges in C++11
- 4:32What are Ranges?
- 8:26Transform Adaptor (2)
- 10:30Transform Adaptor Implementation
- 11:34Filter Adaptor Implementation
- 13:06More Efficient Range Adaptors Must keep iterators small
- 13:44Again: How does iterator look like of
- 15:44Index Concept Compatibility
- 16:13Super-Efficient Range Adaptors With Indices
- 23:28think-cell and rvalue containers
- 28:18More Flexible Algorithm Returns (4)
- 33:10External iteration (2)
- 39:46Internal Iteration often good enough
- 40:52any of implementation
- 42:33Interruptable Generator Ranges (2)
- 43:22concat ptable Generator Ranges (2)
- 44:40concat implementation with indices (2)
- 46:25concat implementation as generator range








