Я читал о модулях в C ++, и я кое-что не могу понять, как это сделать. Интересно, как можно эффективно разделить модуль c ++ на несколько файлов с текущим TS.
Допустим, у меня есть два класса, которые я хочу экспортировать. Я хочу разделить свои файлы ixx, чтобы реализация каждого из этих классов оставалась в отдельных файлах.
Я изобразил что-то вроде этого:
interface.ixx:
module MyModule;
export namespace MyLib {
struct A {
void doStuff();
};
struct B {
A myA;
void otherStuff();
};
}
Затем я хотел бы реализовать мои классы, как это,
A.ixx:
module MyModule;
// import self??
MyLib::A::doStuff() {
// stuff...
}
B.ixx
module MyModule;
// import self again??
MyLib::B::otherStuff() {
myA.doStuff();
}
Что я хочу знать: знает ли модуль, независимо от файла, его интерфейс? Если нет, есть ли другой способ разделить модуль на несколько файлов? Я знаю, что в этом случае это может показаться глупым, но с большими классами в большом модуле было бы заманчиво разделить вещи.
Задача ещё не решена.
Других решений пока нет …