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)或更新版本的 C++ 标准的目标。

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

与 C++ 模块源一起导出的目标将导出此属性的已解析值。