CXX_MODULE_STD

3.30 版本新增。

CXX_MODULE_STD 是一个布尔值,用于指定目标是否可以在其 C++ 源文件中使用 import std;

注意

此设置仅在通过 CMAKE_EXPERIMENTAL_CXX_IMPORT_STD 门控启用了对 import std; 的实验性支持时才有意义。

当此属性显式设置为 ON 时,CMake 将添加对提供 C++ 标准库模块的目标的依赖,这些模块适用于该目标所应用的 C++ 标准。此目标仅在当前构建中可用,并且不会出现在目标的导出接口中。在被使用时,这些目标将根据需要重新应用。

注意

CXX_SCAN_FOR_MODULES 的引入类似,此属性的默认值是 **不** 为使用 cxx_std_23 的目标添加 import std 支持,以保留未使用 import std 的 C++23 项目的现有行为。预期在功能得到更广泛使用后,会有一个未来的策略来更改默认行为。

对于禁用扫描的目标(请参阅 CXX_SCAN_FOR_MODULES),此属性的值无关紧要。此外,此属性仅适用于使用 C++23(cxx_std_23)或更新版本的目标。

此属性支持 生成器表达式,但不允许依赖于配置、使用者目标或链接器语言的表达式。目标是否使用 import std 不应依赖于这些因素,因为它是目标源代码的静态属性。

以 C++ 模块源文件导出的目标将导出此属性的已解析值。