Ranges in 2024

Hendrik Niemeyer

⏱ 90 minute session
09:30-11:00, Saturday, 20th April 2024
Ranges are the biggest overhaul of algorithms in the C++ standard library so far. They introduce easier methods for usage and compositions of algorithms. But what is the state of the ranges implementation in 2024? Can I use them in all scenarios where I would have used iterator based algorithms before and how do they make chaining different algorithms easier by introducing the pipe operator to C++?

In this talk I will explain what ranges are and how the ergonomics of the standard library is improved by them. We will have a look at which of the iterator based algorithms have gotten a "rangified" version in C++20 and C++23 and what is still missing today.

For those of you who cannot use C++20/23 today or who miss some crucial rangified algorithm we will look also at third-party implementations of ranges like ranges-v3 and discuss how they are different from the standardized version.

🏷 algorithms
🏷 ranges
🏷 C++20
🏷 C++23

Hendrik Niemeyer

Hendrik is a C++ developer and works on software for analysis of pipeline inspection data. This includes topics like machine learning, numerical mathematics and distributed computing. Before this he completed his PhD in physics at the University of Osnabrück with a thesis about quantum mechanics and numerical simulations where he got to know and and love programming and complex, mathematical tasks. His favorite programming languages, in which he also has the most experience, are C++ and Rust. He describes himself as a "learning enthusiast" who always gets absorbed in trying out new things. Therefore, he values being up to date with programming languages and using the latest features of them in a meaningful way.