From: Jason Hise (chaos_at_[hidden])
Date: 2005-09-29 16:29:44
Joel Eidsath wrote:
>My main purposes right now are familiarizing myself with Boost.
> From reading the header file for aligned_storage, I believe that I
>understand how to do what you're suggesting, although I admit that I am
>somewhat shaky -- I'd have to figure it out by implementing it, I think.
>But correct me if I'm wrong: I don't think that it would be possible to
>use purge_memory to destruct everything at once like that. You'd have
>to destruct everything individually.
I haven't personally worked with the pool allocators much, so perhaps my
suggestion was misplaced. I was thinking that you wanted a pool that
allocated only enough memory for a single instance, rather than a single
instance of a pool that could store many objects. Anyhow, to use
aligned_storage like I was thinking, you might do something like:
template < typename Type >
typename boost::aligned_storage < Type >::type mem;
Type * pmem;
SingletonPool ( )
: exists ( false )
, pmem ( reinterpret_cast<Type *>( &mem ) )
Type * instance ( )
if ( !exists )
new ( pmem ) Type ( );
exists = true;
void release ( )
if ( exists )
pmem->~Type ( );
exists = false;
~ SingletonPool ( )
release ( );
But this probably wasn't what you were after...
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk