Andy Soffer is a lapsed mathematician turned software engineer. He spent eight years at Google, before founding BrontoSource in late 2024. His time at Google culminated in leading the C++ Core Libraries team (responsible for Abseil and GoogleTest) and the C++ Large Scale Refactoring team, responsible for building and executing multimillion line migrations across the codebase. At BrontoSource, he is excited to share what he has learned about effective automated refactoring techniques with the rest of the C++ community.
Designing and writing refactoring tools has historically been an expensive process with an exceptionally steep learning curve. What can we do to reduce this barrier to entry? In this talk we'll discuss the design of a refactoring paradigm that makes C++ refactoring tooling accessible to the general C++ developer. Rather than needing to learn bespoke APIs, or gain familiarity with the idiosyncrasies of Clang's AST, developers can simply write examples of the code patterns they wish to detect and the replacements they wish to generate in everyday C++. This enables a background task to generate, test and apply refactorings, freeing […]
Mixin libraries provide significant productivity boost for developers, by allowing them to state directly the needs for their type (hashing, serialization, debug-printing, etc) while delegating the tricky implementation details to preexisting libraries. We present a static-reflection-based mixin library, building on the ideas of several open source libraries, including BOOST_FUSION_DEFINE_STRUCT, and Antony Polukhin's magic_get (now Boost.PFR). This talk is deep-dive into the technical details of our implementation, as well as the design space for mixin libraries in general. For the implementation details, we'll go into enough depth that you could implement the library yourself. We'll cover details including how users can […]