Здравствуйте, Sm0ke, Вы писали:
S>А если такое:
S>S>// lib1.cpp
S>export module lib1;
S>struct point {
S> int x, y;
S>};
S>export struct shape {
S> point pos;
S>};
S>// main.cpp
S>import lib1;
S>int main() {
S> shape s1;
S> s1.pos.x = 10; // "point" то по идее не виден ...
S> return 0;
S>}
S>
Так можно.
Как понимаю, класс point теперь incomplete. В экспортируемом shape появилось видимое извне объявление. При компиляции модуля lib1 находится определение и все в порядке. В предыдущем примере объявления класса в сигнатуре функции-то нет.