VS 2022.为什么我的智能不工作时,使用c++ 20模块?



我想在VS 2022中使用c++ 20模块。不幸的是,我不能运用智力,即使是在一个非常简单的测试中。我将选项设置为"c++ latest";Modules"; advanced ";Compile as c++ module code"不幸的是,在文件开头有潦草的字迹,没有智能,也没有标识符高亮显示。此外,我们不能再import std;(也不能再std.core)了。

//Test of modules.
#define MODULES
#ifdef MODULES
import module1;
#else
#include <iostream>
#include <vector>
#include <format>
#endif
std::vector<std::string> vec{"Some", " sentence", " to", " print !"};
int main()
{
std::cout << std::format("Hello World!n");
for (auto & str : vec) {
std::cout << std::format("{}", str);
}
return 0;
}

文件module1.ixx:

export module module1;
export import <iostream>;
export import <format>;
export import <string>;
export import <vector>;
export import <deque>;
export import <chrono>;
谁能告诉我我错过了什么?VS和智能与#include完美配合,没有任何问题。

智能模块支持仍处于试验阶段。

我在Visual Studio 2022 Version 17.4.3中测试了你的代码,没有问题。

然而,Visual Studio 2022 Version 17.5.0 Preview 2.0显示了一些潦草的文字。

ISO委员会(c++ 23)投票通过import std;import std.compat;

要在预览版(17.5.0)中使用import std;,您需要添加std.ixx文件。在我的机器中,该文件位于C:Program FilesMicrosoft Visual Studio2022PreviewVCToolsMSVC14.35.32124modules.

从解决方案资源管理器添加文件(添加->现有的项目…)。

请参阅本网站了解更多信息。https://learn.microsoft.com/en us/cpp/cpp/tutorial -导入stl -名字- module?view=msvc - 170

编辑:在MSVC 17.6.0 Preview 3.0中,不需要添加std.ixx文件。IDE知道如何构建。如果添加,会导致编译错误。

最新更新