[boost] shared_ptr : how to build object chain shared_ptr down and weak_ptr up in object ctor?