C++20: All the small things

Fergus Cooper

60 minute presentation

In addition to the headline features of C++20, the standard library is getting a huge number of useful upgrades. But, because the big features are so big, you might not have heard so much about all the small things. This talk will give you a flavour of the new additions as well as why we need them, some details on their implementation, and how they can make your code easier to read and less prone to errors.

Among other features, there will be new headers (<version>, <source_location> and <numbers>), new semantics for more intuitively interacting with containers, various utilities such as lerp and midpoint, and much much more.

As well as simply highlighting these features, it is often instructive to understand why they exist and why they are implemented the way they are. Why, for instance, is midpoint not just (a+b)/2? Why might it be important to have a signed container size? What is the ‘best’ way to portably implement mathematical constants? For answers to these, and a whistle-stop tour of the little extras in C++20, come along to this talk.

Fergus Cooper

I am a Research software engineer at the University of Oxford.

Recent projects I have worked on include simulating the UK's national infrastructure, building apps for medical applications, working on genome-matching algorithms, and simulating quantum computers.

I do a little bit of everything, but work with C++ whenever possible!