Binary compatibility 100
summary
Defines BC vs SC, shows concrete break examples (adding a defaulted arg breaks BC; adding an overload breaks SC when callers take addresses), and explains practical tools: removed API TU files plus CMake-generated macros to hide old symbols, PIMPL and reserved fields for layout, inline move via swap, and virtual hooks. Demonstrates a working, cross‑platform rolling binary compatibility window used in Qt, warns that wholesale exported classes and added virtuals remain the biggest blockers, and points to slides for code-level details.
AI-written summary · about
chapters (10)
- 0:00Introduction and scope
- 2:34Motivating example
- 6:57Defining compatibility
- 13:35ABI and versions
- 16:44Symbol visibility
- 22:30Class exporting strategies
- 27:00KDE BC resources
- 31:24Core compatibility techniques
- 40:23Cheating with binary compatibility
- 49:42Q&A and advanced inlining
related talks
56mAPI & ABI versioning
01h 02mBack to Basics: The Structure of a Program
01h 00mBack to Basics: Class Layout
01h 05mBack To Basics: Overload Resolution
59mModernizing Legacy C++ Code
01h 07mC++20 Modules: The Packaging and Binary Redistribution Story
58mUnderstanding and Mastering C++'s Complexity
01h 10mAn Overview of C++11/14, Part II
