id summary reporter owner description type status milestone component version severity resolution keywords cc 4277 Ease access to underlying singleton_pool Henning.Stroeker@… Chris Newbold "It is not convenient to call ''singleton_pool<...>::release_memory()'' if you use ''pool_allocator'' or ''fast_pool_allocator''. The reason is that the exact singleton_pool type has to be specified: {{{ typedef boost::pool_allocator myAllocator; std::vector v; ... //do something and empty v again boost::singleton_pool::release_memory(); }}} In fact the call to ''release_memory'' might need even more template arguments (because of user allocators etc). And: The developer has to know all template parameters. If the vector declaration changes the call to ''release_memory'' has to be changed too, otherwise it would still compile but have no effect. This is error-prone. It would be much easier if ''pool_allocator'' and ''fast_pool_allocator'' would provide a typedef for the used singleton_pool. Then the above code would look like this: {{{ typedef boost::pool_allocator myAllocator; std::vector v; ... //do something and empty v again myAllocator::singleton_pool_type::release_memory(); }}} The implementation in pool_alloc.hpp would look like this: {{{ template class pool_allocator { public: typedef T value_type; typedef UserAllocator user_allocator; typedef Mutex mutex; ... typedef singleton_pool singleton_pool_type; ... }}} " Feature Requests closed Boost 1.43.0 pool Boost 1.44.0 Optimization wontfix boostpool@…