Re-Release: Missing (and future?) C++ Range Concepts
summary
Describes concrete new range concepts implemented in a think‑cell library (C++23 subset, using some C++26 conveniences): reserve_hint / approximately sized ranges to propagate size hints through views; a push‑based customization point for_each_while(rng, sink) that replaces pull iterators for faster inlined loops; chunk-aware syncs to memcpy contiguous pieces; compile‑time‑sized and heterogeneous (tuple) generators to do metaprogramming and emit compile‑time strings. Presents working library code, worked examples (file reader, tab→spaces pipeline) and tradeoffs where some proposals were rejected or need standard wording changes.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 2:31Performance optimizations for ranges
- 10:12State machines in iterators
- 15:46Push vs pull model
- 22:43For each customization point
- 28:03Chunking and memory optimization
- 31:14Compile-time string manipulation
- 37:57Early vs late evaluation
- 43:55Homogeneous vs heterogeneous generators
- 50:15Compile-time sized ranges
- 56:15Undefined behavior with infinite ranges
- 1:06:51Summary
related talks
01h 01mAn Overview of Standard Ranges
01h 34mAn Overview of Standard Ranges
01h 01mFrom STL to Ranges: Using Ranges Effectively
01h 02mC++20 Ranges in Practice
01h 06mC++20 Ranges in Practice
57mRange Algorithms, Views and Actions: A Comprehensive Guide
01h 25mC++23 Ranges: Conceptual Changes and Useful Practicalities
01h 13mFrom Iterators to Ranges — the Upcoming Evolution of the Standard Library
