CppCon 2021 Trip Report

This trip report focuses on the technical aspect of the conference. It’s a collection of talks which, I believe, holds great value to the listeners, and represents best the path C++ is taking.

Where To Start?

Those of you who are mostly familiar with CppCon through the YouTube channel, might have missed that the schedule is published using color coding to identify talks’ topic. It’s available on the schedule descriptions tab, and I’ve posted the talks along with their color coding, so that you’ll be able to easily identify the topics. I’ve also added a short description to each talk to provide additional information and increase your appetite :)

Software Development As It Should Be

In this talk Phil Nash, with perspective gained by years of experience and of over 100 talks, talks about CAREER principles — Correctness, Applicability, Reliability, Efficiency, Evolvability, Reasonability.
Titus Winters, with a very inspirational talk about migrations between interface versions, defining default configurations, correct documentations, and a lot more interesting perspectives of API design.

Gain New Skills

Jacob Rice presents an in-depth overview of the “ranges library”, which will give you both better understanding of it, and the ability to extend it with your own customized views.
This talk, by Ben Deane, one of the authors of the paper which proposed “Deducing this”, presents the new language feature which allows deducing the value category of the expression that a member-function is invoked on. This will definitely be a great addition to your toolbox starting from C++23.
In this fun talk, Daisy Hollman presents some of the best tricks from her popular series of twitter posts “Cute C++ trick of the day”. This talk is guaranteed to teach you something new about C++ :)
In this talk, Gabor Horvath presents a deep overview of path-sensitive static analysis, both the existing features as well as the ones which are still in process. The features exist in the community edition of Visual Studio and in Github security actions.

Fresh Perspective

Alisdair Meredith and Nina Ranns talks about PODs — Plain Old Data, and different uses and techniques (for example the “trivially copyable” type trait). They also present the “trivially relocatable” object type.
Walter E. Brown provides a fascinating historical overview of “operator<”, ordering, and the min, max algorithms in the standard, as well as the pitfalls to be aware of when using them.
David Stone presents a high performance vector implementation, which is also a great case study for the different considerations that exist when designing a container.
In this great talk by Sean Parent, he talks about preconditions, the assumptions we make as developers, and the difference between abstract concepts and how they materialize in our software.

What The Future Holds?

Eric Niebler, the author of “libunifex”, in part I of this must-see talk for everyone who is interested in the future of the “std::execution” proposal and of C++’s asynchrony model.
Part II of this must-see talk by Eric Niebler, for everyone who is interested in the future of the “std::execution” proposal and of C++’s asynchrony model.
This talk opens a window to the future of C++. In this important talk, Bryce Adelstein Lelbach provides an extensive overview of different aspects of parallelism in the standard library, and talks about the pillars of parallelism — the guidelines which we still need to achieve in order to fully support parallelism.
This talk is a great overview by Jeff Garland, assistant chair of Library Work Group, of the latest additions to the C++23 standard library, with details about the past, present, and future of the features.
Bjarne Stroustrup presents in this great talk the history and path for achieving type-and-resource safety. This talk is a great lesson about ownership and resource management, and is guaranteed to give you new ways of considering these topics in your program.

A Bonus: An Inside Look Of The Process

This panel might shed some light on how WG21 works, and the different considerations and challenges presented by the pandemic, from an insiders’ perspectives.

Where Does C++’s Path Lead Us?

I can honestly say C++ today is better then ever. We, as standards committee, put a lot of effort in readability, usability and maintainability, and I think it shows.

Final words

CppCon is only one of the actions the Standard C++ Foundation is taking in this regards. Another one is The C++ Core Guidelines. The Core Guidelines are a cohesive list of best practices, including examples and FAQ. In addition, there’s a library implementation (currently only implemented in MSVC) which is called GSL (Guidelines Support Library). It’s a headers-only library (for more info on that, you can read my previous blog post). I believe every developer (both beginners and experienced developers) should get familiar with the facilities presented there.

(Official Gaylord Rockies site)

C++ Enthusiast. ISO WG21 member, and head of Israel C++ mirror committee.