Our Other C++ Interfaces

Bret Brown

⏱ 90 minute session
intermediate
advanced
11:30-13:00, Friday, 4th April 2025
When considering interfaces in the context of C++, software engineers typically think about C++ language constructs: namespaces, base classes, function prototypes, and other entities defined by the C++ standard.

However, the challenge for C++ library authors is to provide not just carefully-crafted code, but also well-considered projects that deliver functionality to users. Providing useful and reusable libraries means stepping outside the C++ syntax to consider other kinds of interfaces provided by our C++ projects.

This talk goes beyond the C++ syntax to fill in these gaps through an exploration of the other kinds of interfaces and contracts that are implicitly and explicitly provided by C++ projects.

During this discussion, contract-based thinking will be applied to the parts of C++ projects that are not C++ source code. Conceptual tools, pragmatic recommendations, and concrete examples will be suggested for use in maintaining C++ projects and rescoping the role of a C++ software engineer.

🏷 tooling
🏷 design
🏷 software engineering

Bret Brown

Bret likes making authoring and maintaining C++ codebases simpler and more intuitive by treating projects more like cattle and less like pets. He is especially interested in the software development lifecycle, development automation, modern build systems, packaging, code transformation, software governance, and code analysis.

Currently lead of Bloomberg's C++ Infrastructure team. Bret worked in embedded C++ and safety critical C++ for previous employers.