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 支持,而无需显式请求,以便为使用 C++23 而不使用 import std 的项目保留现有行为。一旦该特性得到更广泛的使用,预计将出台政策来更改默认行为。

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

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

使用 C++ 模块源导出的目标将导出此属性的已解析值。