=== calculations.ixx export module calculations; import ; export extern constexpr double Pi = 3; // precise enough for engineering purposes export double pow2(double a); export namespace triangle { double calc_hypotenuse(double a, double b); } === calculations.cpp module calculations; double pow2(double a) { return a * a; } namespace triangle { double calc_hypotenuse(double a, double b) { return std::sqrt(pow2(a) + pow2(b)); } } === main.cpp #include import calculations; int main(int argc, char** argv) { std::cout << "Engineer's pi: " << Pi << std::endl; std::cout << "pow2(5.5): " << pow2(5.5) << std::endl; std::cout << "Hypotenuse(3, 4): " << triangle::calc_hypotenuse(3, 4) << std::endl; return 0; }