我正在尝试 Visual Studio 2017 版本 15.4.4 中模块的实验性实现。我按照这里描述的说明https://blogs.msdn.microsoft.com/vcblog/2017/05/05/cpp-modules-in-visual-studio-2017/。我能够在控制台应用程序中快速运行它。
import std.core;
int main()
{
std::cout << "Hello modules!" << std::endl;
return 0;
}
导入和使用可用的标准模块不是问题(据我所知)。
但是,当我定义自己的模块时,没有任何效果。我添加了一个文件system.ixx(项目类型 C/C++ 编译器),内容如下:
import std.core;
export import system.io;
export struct console
{
void write(std::string_view text) { std::cout << text; }
void write_line(std::string_view text) { std::cout << text << std::endl; }
};
当我添加import system.io
到main.cpp
import std.core;
import system.io;
int main()
{
std::cout << "Hello modules!" << std::endl;
return 0;
}
我收到以下错误:
1>system.ixx
1>system.ixx(2): error C2230: could not find module 'system.io'
1>main.cpp
1>main.cpp(2): error C2230: could not find module 'system.io'
我还添加/module:reference system.io.idf
了编译器选项,但没有从system.ixx生成system.io.idf文件。
我知道这是实验性的并且有很多问题,但我想知道我应该做些什么来让这个简单的事情发挥作用。