Я пытаюсь экспериментальной реализации для модулей в 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 ++ compiler) со следующим содержимым:
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.io.idf файл создан из system.ixx.
Я знаю, что это экспериментально и имеет много проблем, но мне было интересно, должен ли я сделать, чтобы эта простая вещь работала.
Задача ещё не решена.
Других решений пока нет …