Overview
Syllabus
VIRTUAL EVENT A Practical Introduction to C++20's Modules
Modular Programming Modules separate a program into independent and interchangeable units • Modules hide the actual implementation and possibly data and • A module is not a package
Module Names A number of identifiers joined by does
Modules and Namespaces
Module Partitions
Private Module Fragment • Keep interface and implementation separate without having multiple files • modification of the private module fragment cannot trigger recompilation of importers of the module • Possibly faster incremental buids
Global Module Everything must be attached to a module declared in a module
What Can Be Exported? variables classes, structs, functions, namespaces, template function classes, concepts
Implicit Exports
include and modules including a header in the module purview is not a good idea
Global Module Fragment . Only preprocessor directives allowed • Declarations not used in the named module are discarded and not • Use for headers which rely preprocessor state from the includer
Header Units
Advice for Headers Your own header. Try to convert it into a module including in the global module fragment
Advantages encapsulation and information hiding
Advice Visual Studio users: Use and leam modules with small hobby side projects all others: Wait for compiler and build system support
Taught by
ACCU Conference