( tetra | 2012. 11. 16., p – 10:31 )

"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