Translation unit #1:export module M:A; export struct B;
Translation unit #2:module M:B; struct B { operator int(); };
Translation unit #3:module M:C; import :A; B b1; // error: no reachable definition of struct B
Translation unit #4:export module M; export import :A; import :B; B b2; export void f(B b = B());
Translation unit #5:import M; B b3; // error: no reachable definition of struct B void g() { f(); } // error: no reachable definition of struct B — end example]
Translation unit #1:export module A; struct X {}; export using Y = X;
Translation unit #2:import A; Y y; // OK, definition of X is reachable X x; // error: X not visible to unqualified lookup — end example]