
John Maddock wrote:
Some boost header includes <boost/shared_ptr.hpp> .... includes <memory> and finds the Boost.TR1 version .... Tries to include shared_ptr.hpp and associated headers, but gets no actual contents because we're within the shared_ptr include guards, but haven't actually declared anything yet.
I thought I had managed to get this working by forward-declaring the contents of shared_ptr.hpp, weak_ptr.hpp etc in the TR1 header, and this does actually work on some compilers (VC++ for example). However on other "stricter" compilers (gcc is the prime example), the compiler chokes on the declaration of weak_ptr, because some of it's data members are still incomplete types at the time weak_ptr.hpp gets included (which is after shared_ptr.hpp is included, but *before* it's contents get fully declared.
What are the exact errors that you get?