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@…