I\'m currently designing a object structure for a game, and the most natural organization in my case became a tree. Being a great fan of smart pointers I use shared_pt
For my own project, I was able to improve performance dramatically by adding
#define BOOST_DISABLE_THREADS before any boost includes.
This avoids the spinlock/mutex overhead of weak_ptr::lock which in my project was
a major bottleneck. As the project is not multithreaded wrt boost, I could do this.