С++20 циклическое импортирование модулей
Когда я в модуле A импортирую модуль B, а в модуле B импортирую модуль A, у меня возникает ошибка: 
Вот сам код: Module1:
export module Module1;
import Module;
export class B
{
public:
void foo()
{
A a;
a.foo();
}
};
Module:
export module Module;
import Module1;
export class A
{
public:
void foo()
{
B b;
b.foo();
}
};
main:
import Module;
int main()
{
A a;
a.foo();
return 0;
}
Есть ли какой-нибудь способ сделать такое импортирование, когда 2 модуля зависят друг от друга?
Ответы (1 шт):
Автор решения: Никита Самоуков
→ Ссылка
ClassA.ixx
export module ClassA;
export class A
{
public:
void bar();
};
ClassA.impl.ixx
import ClassA;
import ClassB;
void A::bar(){
B b;
b.foo();
}
ClassB.ixx
export module ClassB;
import ClassA;
export class B
{
public:
void foo()
{
A a;
a.bar();
}
};
Test.ixx
export module Test;
import std.core;
using namespace std;
import ClassA;
export int main()
{
A a;
a.bar();
}
Произведёт SO.