A Boost library author (Boost.MySQL, Boost.Beast) shares hands-on experience attempting to support `import boost` using C++20 modules. The talk covers core module concepts (primary module interfaces, implementation units, partitions, BMIs, visibility vs reachability, module attachment, global module fragment discards), practical CMake integration with Clang, and the real-world challenges of modularizing existing header-heavy libraries like Boost.Asio. Build time measurements reveal that naively wrapping headers in modules can make things worse due to increased translation units and reduced parallelism. Three modularization styles are compared (re-export via using, ABI-breaking, export extern C++), with the conclusion that while modules offer real benefits (75% build time reduction for lightweight libraries), the tooling ecosystem is not yet production-ready and modules are not a silver bullet for template-heavy code.
Sort: