Submodules and Module Partitions
Learn the difference between submodules and module partitions.
We'll cover the following...
When your module becomes bigger, you want to divide its functionality into manageable components. C++20 modules offer two approaches: submodules and partitions.
Submodules
A module can import modules and then re-export them.
In the following example, module math
imports the submodules math.math1
and math.math2
.
Press + to interact
// mathModule.ixxexport module math;export import math.math1;export import math.math2;
The expression export import math.math1
imports module math.math1
and re-exports it as part of the module math
.
For completeness, here are the modules math.math1
and math.math2
. I used a period to separate the module math
from its submodules. This period is not necessary.
Press + to interact
// mathModule1.ixxexport module math.math1;export int add(int fir, int sec) {return fir + sec;}
Press + to interact
// mathModule2.ixxexport module math.math2;export {int mul(int fir, int sec) {return fir * sec;}}
If you look carefully, you recognize a small difference in the export
statements in the modules ...