I recently had to create a class that managed a pool of objects for the user. Instead of the user creating the object themselves they would ask the class for an object. The class would hand the user a boost::shared_ptr of the object. When the boost::shared_ptr needed to destroy the object it handed it back to the class to reuse. The class is designed for those areas that need a lot of the same object but not all at the same time. This class has been useful for the boost::asio library where the async_receive and async_write need the buffer to be valid until the callback occurs. Other people at my work have shown interest and I'm looking at needing to improve the class to make it more general. Instead of spending time doing the improvements I would like to know if the boost libraries have anything like what I described. I'll looked through the descriptions but haven't seen anything that comes close. Ryan