C++ Modules and Large-Scale Development
summary
Claim: C++ modules change architecture more than raw compile times, by making components first-class and enforcing no cyclic physical dependencies and no inter-module friendship. Practice: follow component rules — include header as first substantive line, declare all externally linked entities in headers, use pimpl for insulation — and extract dependency envelopes with grep on #includes. Reality check: modules TS currently lacks true insulation and allows unsafe local declarations, so the methodology that has worked for decades still matters; modules must be additive and incremental to be adopted.
AI-written summary · about
chapters (28)
- 0:00Introduction
- 0:25Abstract
- 1:11Apologies
- 2:47Copyright Notice
- 3:18LargeScale Software Design
- 5:21Outline
- 5:31Components
- 5:57Modules
- 7:08Component vs Module
- 8:29Declaration vs Definition
- 11:43Linkage
- 15:09namespace
- 17:53Binding
- 21:09Template Repository
- 26:31Notation
- 33:18Physical dependencies
- 35:58Physical design rules
- 37:14Criteria for colocating public classes
- 38:42Reuse
- 41:42Flea on an Elephant
- 44:19Insulation
- 45:46ADL
- 47:32Encapsulation
- 49:10Installation
- 53:08Polygons
- 53:49Uses
- 54:46Inline Functions
- 57:38Classes
related talks
59mC++ Modules and Large-Scale Development
01h 30mC++ Modules and Large-Scale Development
01h 01mLarge Scale C++ with Modules: What You Should Know
01h 04mProgramming with C++ Modules: Guide for the Working
58mWhy Modules?: It's not about build time
58mKnockin' on Header's Door: An Overview of C++ Modules
26mC++ Modules Myth Busting
01h 00mSo, you want to use C++ Modules ... cross-platform?
