"Megoldás lenne, ha mindkét headerben a struktúra elé bekerülni egy struct MásikTípus; sor, de ennél jobbat találtam ki."
Ez mitől jobb megoldás?
"Vagyis elvileg a struct MásikTípus; akkor is includeolásra kerül, ha a header többi része nem, így a kód lefordulhat. A gond csak az, hogy a gyakorlatban ez nem történik meg. A kérdésem az, hogy miért nem?"
Az a vicces, hogy minden mókolás nélkül is lefordul, pedantic-kal meg minden. Egyelőre nem is értem, hogy miért és hogy.
-E-s fordítás után:
# 1 "asd.cpp"
# 1 ""
# 1 ""
# 1 "asd.cpp"
# 1 "a.h" 1
# 1 "b.h" 1
# 1 "a.h" 1
# 5 "b.h" 2
struct B
{
struct A *a;
};
# 5 "a.h" 2
struct A
{
struct B *b;
};
# 2 "asd.cpp" 2
int main()
{
A a;
B b;
}
Ha valami guru el tudja ezt magyarázni, azt megköszönném. Már hogy miért nem kell legalább forward deklarálni, hogy a B típus megadásánál az A névre ne sírjon.
----
India delenda est.
Hülye pelikán