Re[4]: Модули в C++20 и type aliases
От: XOOIOOX  
Дата: 25.02.21 15:50
Оценка:
Здравствуйте, 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 находится определение и все в порядке. В предыдущем примере объявления класса в сигнатуре функции-то нет.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.