Boost logo

Boost :

Subject: Re: [boost] [mixin] New library reminder
From: Klaim - Joël Lamotte (mjklaim_at_[hidden])
Date: 2013-07-13 08:59:59


On Sat, Jul 13, 2013 at 2:31 PM, Borislav Stanimirov <b.stanimirov_at_[hidden]>wrote:

>
> The allocators in the library are classes of your own, that derive from a
> regular interface parent (class with pure virtual methods). They can have a
> state, and you can manage their instances. A piece of code like this is
> possible:
>
> // this has been set as the book_data allocator
> my_book_data_allocator.**prepare_book_datas(objects.**size());
>
> for(o : objects)
> {
> o->add<book_data>();
> };
>
> To have all book_datas consecutive in memory, the need to move them within
> the buffer is needed (unless you allocate them ALL once and forget about
> them altogether). I could probably address this in some way. I'll have to
> think about it.
>
>
That solves the need to define myself how the components are allocated. yay.
However I also want to be able to do something like:

world.book_data_allocator.**prepare_book_datas(objects.**size());

objects.push_back( make_unique<object>( world.book_data_allocator ) ); //
specify which instance of allocator to use

for(o : objects)
{
  o->add<book_data>();
};

I believe this adds a pointer to the allocator instance?

I'll also think if I can do anything to make this easier for the user, but
> at a first glance, apart from documenting thoroughly how the mixin
> allocations work, I don't think I'll be able to help. You understand that
> if the user knows that their allocators provide memory that's to be used
> like this |object*...their own type|, they can safely manipulate the chunk
> in any way they wish.

Yes.

Joel Lamotte


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk