Jody Hagins started using C++ back in the mid 1980s, with cfront. In 1993, he enjoyed writing enough C++ support code to enable writing loadable unix device drivers in C++. Since then, he has been applying C++ to various problems within the fintech space.
Any sufficiently advanced technology is indistinguishable from magic. Unfortunately, so is a decent parlor trick. The whole game with AI is figuring out which one you're actually looking at. Generative AI is changing the programming landscape, which is exciting, confusing, useful, over-hyped, and occasionally just plain scary. For C++ programmers, that mix gets even more interesting because our mistakes are rarely decorative. This talk explores what C++ developers actually need to know about AI: the technical risks, the broader human concerns, and the practical techniques that make these tools more helpful and less hazardous. We will cover correctness and some […]
This talk argues that Scott Meyers' mantra "make interfaces easy to use correctly and difficult to use incorrectly" isn't just good practice for humans. It's essential infrastructure for a world where AI generates C++ at scale. When there's only one right way to call a function, both humans and machines get it right. If there are multiple ways, and some lead to disaster, AI increases the probability of disaster. Through concrete redesigns of real APIs and parts of the standard library, we demonstrate how interfaces designed specifically to provide "one right way" act as implicit guardrails for generated code, and […]
Scott Meyers has famously proclaimed that the most important general design guideline is to make interfaces easy to use correctly and hard to use incorrectly. I don't dispute that claim, for the general case. However, for the specific case of an API, and in particular C++ library code, this guideline must take a back seat to something else. So, what should that something else be? Obviously, since the above paragraph mentions C++ specifically, it must relate to performance in some way. Could it be to make interfaces as efficient as possible? If not, then what in the world could it […]
This presentation is intended to be a tutorial on using Boost.MP11, by example. During the course of this presentation, we will explore the majority of the Boost.MP11 API as we help save Christmas by solving multiple Advent of Code 2022 problems at compile time, using Boost.MP11. This tutorial is not intended for true C++ beginners, but we will start out simple enough that anyone familiar with templates should be able to follow along and learn how to use the Boost.MP11 API. Join us as we save Christmas, have some fun, and learn some Boost.MP11 along the way.