From one segmented range to two In the first installment of this series we revisited Matt Austern s Segmented Iterators and Hierarchical Algorithms paper and measured what a modern compiler can do when a single-range, single-pass algorithm (find, fill, count, for_each, ) is decomposed into per-segment flat loops. The results were encouraging: once the per-element block-boundary [ ]
Introduction to segmented iterators The legendary STL library has been an inspiration in the development of the C++ language and libraries. The understanding of the concepts and code developed by Stepanov, Lee, Musser, Austern, etc. is a treasure trove for any C++ programmer. Stepanov’s core claim was that abstraction should have near-zero overhead. He argued [ ]
Many C++ developers have used std::deque, and most assume all implementations are roughly equivalent. In practice, they differ quite a bit. The three major standard library implementations — libc++ (Clang/LLVM), libstdc++ (GCC), and Microsoft STL (Visual Studio) — each make different design choices about block sizes, iterator layout, map management, and memory reclamation. Boost.Container 1.90 [ ]