Visibility, Reachability, Linkage – The Three Secret Spices of C++ Modules
summary
Explains how C++20 modules replace header text inclusion with a compiled BMI and one primary module interface, shows exactly how exported vs non-exported names control name lookup, and distinguishes visibility from reachability (which declarations must be present in a BMI). Covers how linker symbols change via module linkage, contrasts strong vs weak ownership, and walks through an OEM static‑library conflict that can break linking and the practical workaround of using C linkage or global‑fragment headers.
AI-written summary · about
chapters (8)
- 0:00Start
- 7:10Build a Binary Module Interface
- 9:23Module Declaration
- 11:20How Do Modules Achieve Your Stated Goals
- 13:59Hidden Friends
- 21:26Semantic Properties of Declarations
- 30:23Recap
- 31:15Additional Resources
related talks
58mWhy Modules?: It's not about build time
01h 01mPractical C++ Modules
58mKnockin' on Header's Door: An Overview of C++ Modules
01h 11mA Practical Introduction to C++20's Modules
01h 01mC++20 Modules - Review of the Current State of C++ Modules 2024
01h 01mLarge Scale C++ with Modules: What You Should Know
01h 30mC++ Modules and Large-Scale Development
01h 04mProgramming with C++ Modules: Guide for the Working
