Можно конечно поменять местами декларации B и A, но хотелось бы сохранить такой порядок. Вопрос - как?
struct B;
struct B::C;
struct A {
typedef B::C DataPtr;
DataPtr c;
};
struct B {
struct C {
int ololo;
};
...
};
P.S. никому не кажется лишним правило о строгом порядке объявления?