Building and Extending the Iterator Hierarchy in a Modern, Multicore World
summary
Stepwise derives STL iterator concepts using concrete algorithms, shows code written in C++14/Concepts Lite style and points out that contiguous iterator (in C++17) needs a pointer_from isomorphism for efficient memmove, then builds segmented iterators (outer segment + local iterator) and a segmented-aware copy that delegates to inner contiguous copies and can spawn per-segment tasks (TBB-style) to achieve parallelism with no false sharing; demos compile and the library code is on the conference GitHub.
AI-written summary · about
chapters (20)
- 0:00Introduction to iterators
- 2:20Generic programming overview
- 4:35The problem with copy loops
- 6:24Scaling and move semantics
- 9:00Defining iterator concepts
- 12:13Syntactic vs semantic constraints
- 15:45Regular types and requirements
- 20:22Readable and writable traits
- 23:52Implementing concepts in code
- 25:27Generic algorithms and interoperability
- 29:21Forward iterator and multipass
- 32:21Bidirectional iterators
- 35:36Iterator hierarchy relations
- 37:23Random access iterators
- 40:57Optimizing with memmove
- 43:58Contiguous iterator isomorphism
- 47:29Segmented iterators
- 50:12Implementing segmented concepts
- 53:06Parallelization and caching
- 55:58Cache-aware iterators and conclusion
related talks
18mPersistent Iterators with Value Semantics
01h 03mIteration Revisited: A Safer Iteration Model for C++
01h 02mWriting Standard Library Compliant Data Structures and Algorithms
57mWriting Great Libraries: 89 Easy Steps
46mMeandering Through C++ Creating ranges::to
37mEnhancing STL containers
01h 14mReintroduction to Generic Programming for C++ Engineers
01h 13mFrom Iterators to Ranges — the Upcoming Evolution of the Standard Library
