Range views enable a “no raw loops” style of programming — not as a matter of taste, but as a pragmatic way to reuse well-tested algorithms to write code faster, express intent clearly, and avoid common bugs. In practice, however, developers often run into issues that may lead them to abandon ranges altogether:
- unintuitive behavior and surprising limitations
- slower compilation and runtime performance compared to raw loops
- high complexity when implementing custom views
In this talk, we’ll distill the core design choices behind these problems — and the alternatives that avoid them. In particular, we’ll compare:
- iterators and indices
- external and internal iteration
- transformations of nested views that overcome limitations of internal iteration
Attendees will leave with practical insights for designing and using range abstractions, along with examples of libraries that embody these ideas.