My Favorite Talks of CppCon 2023

Every year, I try to catch up on the YouTube videos of CppCon to see what’s going on. I use C++ day to day, so keeping up to date on the tools I use is imperative to success. I try to watch any video that captures my interest. I’ve learned a ton of things over the years, and figured I’d highlight a few of the videos I liked this year.

Coping With Other People’s Code – Laura Savino

I know a few people in the YouTube comments were lamenting that this didn’t have as much concrete actionable advice, but I actually found that a strength. This talk was a discussion of empathy (something I have written a lot of pages about), and I thought it was a message many people need to hear. I also liked talking through how we approach things with good intentions “anyone can fix anything” can go awry. If you have any sort of sphere of influence in where you work, this is a good talk to think about the culture and examples you’re setting.

Cooperative C++ Evolution – Herb Sutter

A lot of Herb’s talks feel a bit the same, but there are things about this talk that I really appreciated. I’m not 100% behind Cpp2, but I applaud the effort. I also like how Herb credits his colleagues throughout his presentations. I didn’t initially like his presentation style, but it has grown on me. I do like his push for simplicity, and I hope that this kickstarts the right conversations for C++.

Exceptionally Bad: The Misuse of Exceptions in C++ and How to Do It Better – Peter Muldoon

I’ve been struggling with exceptions for some time in some of the codebases I’ve worked in. Over time, I’ve started moving away from them and using std::optional and std::expected, but there are times I still want to use exceptions to maintain class invariants. I was quite pleased to see Peter address a ton of anti-patterns that I’ve struggled with. He also provides solid advice on how to handle these exceptional cases. He also has a custom exception type that I am quite fond of that he goes over at the end of the talk.

The Au C++ Units Library: Handling Physical Units Safely, Quickly, & Broadly – Chip Hogg

I’m always a bit wary of talks that pitch a specific library or tool. There were a few other talks this year that had promising titles for me, but ended up talking about a specific tool that they were hawking. So I entered this talk with trepidation, but was quite pleased. It was very focused on the AU library, but I found it to be an honest discussion about engineering trade-offs. I do love type safety, so seeing a library like this is nice, and I appreciated all the nuance that has to go into designing something like this.

Evolution of a Median Algorithm in C++ – Pete Isensee

I wish there were more 30 minute talks at CppCon. 1 hour talks are so long, and feel stretched out at times. This was a breath of fresh air with a concise talk jam-packed with an interesting engineer problem. It went through a ton of design considerations, and I thought it was incredibly valuable to sit through and think through how to improve the design. By the end, you get a much better idea of how tricky algorithm design can be.

Lock-Free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done – Daniel Anderson

I didn’t think I’d like this talk based on the title, but it became one of my favorite talks of the year. A good talk does the following for me: teaches me something about something I know, expands how to use it, and contains more than just technical advice; it talks about how to design or engineer things. In this talk, I got to learn more about how shared_ptr, and I got to learn why an atomic shared pointer is so hard to be lock-free. I’ve watched most of Michael Wong’s talks on hazard pointers before, but it wasn’t until I hit this talk that I understood what a hazard pointer is and why it can be useful.

Honorable Mentions

Delivering Safe C++ – Bjarne Stroustrop

Bjarne Stroustop always delivers one of the plenaries, and they are a worthwhile watch for anyone who hasn’t seen one before. It’s a good cross between history lesson on C++, where the language is headed, and why C++ can be a good launguage. However, if you’ve seen any of his talks, they all feel very same-y for me, so I have to list this as an honorable mention.

A Long Journey of Changing std::sort Implementation at Scale – Danila Kutenin

I do like nitty-gritty talks, but it’s tough to make those talks approachable. I do not find C++ to be an aesthetically pleasing language, so it’s tough to read slide after slide of code and assembly. However, Danila does a great job in walking through how std::sort can go awry when dealing with sorts, and all the issues that are needed to handle changing things across a large codebase. This is a good talk for anyone who wants to get an idea of how engineering trade-offs need to be made.

Applicative: The Forgotten C++ Functional Pattern – Ben Deane

I’ve liked a lot of Ben Deane’s talks throughout the years. His talk on Product and Sum types changed how I view vocabulary types and gave me my first real exposure to algebraic data types. This talk continues in this vein by talking about applicatives and monads. It felt like Category Theory / Haskell 101, and while I may not reach for these immediately in my coding, I appreciated the broadening of my views.

C++23: An Overview of Almost All-New and Updated Features – Marc Gregroire

A bit of a kitchen sink talk, I do like these talks every few years (I know Daisy Hollman had given one the year before as well, and if not for hers, this would be outside of my honorable mentions). It’s nice seeing all the things that came in a C++ version, and boy are there a lot. I thought Marc did a good job in explaining why you need each feature without dawdling on any one.

Leave a comment