C++ 模块、进程与线程编程详解
1. C++ 模块的使用
在 C++ 编程中,模块是一个重要的概念。与传统的 #include
相比,模块具有诸多优势。
首先,模块的编译次数与 #include
不同。模块只编译一次,而 #include
若要实现只编译一次,需要使用 #ifdef
、 #define
和 #endif
预编译器。其次,模块可以以任意顺序导入,而不影响其含义, #include
则不具备这一特性。另外,如果一个符号没有从模块中导出,客户端代码就无法使用它,编译器会报错。并且,模块不像 #include
那样具有传递性,例如将模块 A 导入模块 B,当模块 C 使用模块 B 时,并不意味着模块 C 能自动访问模块 A。
下面是一个使用模块的示例代码,展示了如何使用 temperature_engine
模块:
// Step 2 中使用 temperature_engine 模块的客户端代码
import temperature_engine;
import std.core;
int main() {
auto fahrenheitTemps = toFahrenheitFromCelsius({0, 10, 20});
std::for_each(fahrenheitTemps.begin(), fah