Well, I see how your example compiles in the case of RAW cyclic pointers. However, I cannot use raw pointers, and I don't know how to get it to compile with cyclic smart pointers (specifically, boost::shared_ptr). Was there something that I missed?
Just use a smart pointer instead of a raw pointer. The following
compiles as expected.
#include <fstream>
#include