小编swe*_*mer的帖子

对于具有传递标准库“#include”的 C++ 项目来说,“import std;”是一个现实的目标吗?

Visual Studio 2022 17.5 及更高版本支持导入 C++23 标准库命名模块std,方法是将 的所有实例替换#include <header>import std;where<header>是标准库头。

根据教程,有一些限制,例如:

不要混合和匹配导入 C++ 标准库头文件和命名模块。例如,不要 #include <vector> 和 import std; 在同一个文件中。

这是否意味着如果我import std;在文件中使用(通过“文件”我假设本教程指的是.cpp文件或其他翻译单元),那么它所包含的任何非标准库头都#include不允许传递到#include标准库标题?

我很确定答案显然是肯定的,因为在预处理之后,是否存在并不重要#include- 它的内容最终将.cpp与语句混合在文件中import

但是,除了彻底搜索所有传递性之外,还可以采取什么措施来防止混合呢?#include但是,除了彻底搜索所有传递性以查看是否存在任何标准库头之外,import std;特别是如果一个项目依赖于 Boost 之类的东西,那么在 Boost 本身作为模块提供之前,这似乎不是一个现实的选择,对吗?

那么与此同时,我的说法对吗?import std; is basically only realistic for new or small projects where the standard library header dependencies (both direct and transitive) …

c++ c++-modules

11
推荐指数
1
解决办法
424
查看次数

标签 统计

c++ ×1

c++-modules ×1