Boost logo

Boost :

Subject: Re: [boost] [poly_collection] Request for comments: fast polymorphic collections
From: Larry Evans (cppljevans_at_[hidden])
Date: 2016-11-06 11:11:57

On 11/06/2016 06:25 AM, Joaquin M López Muñoz wrote:
> A couple of years ago I wrote two blog entries about high-performance
> data structures
> for polymorphic objects:
> that spurred some interest in the community. Now I've had the time to
> turn these
> ideas into something resembling a full-fledged library:
> and I'd be very grateful if people could give their opinion on
> usefulness, design, etc.
> so as to determine potential interest in an eventual official submission
> to Boost.
> Thank you,
> Joaquín M López Muñoz
Thanks for the update Joaquin.

I noticed you also mentioned this library in reponse to
another thread here:

which made me wonder how it would perform in the benchmark
mentioned in that thread:

But then, I looked at the documentation here:

and it looked like there was a separate pointer for each
type. Hence, the storage looks like it would be simllar to:

      template<typename... Ts>

where the separate pointers would be the data() pointer for
each element in soa_tuple. IOW, the storage would be like
that of particles here:

Hence, I'm wondering what's the advantage of your library's
base_collection compared to the soa_tuple. Now, if you say
soa_tuple contains duplicate entries of size(), then I could
ask what's the advantage of base_collection vs that of the
particles at:

where there's just a single pointer to a contiguous block of

and the pointers to the specific types are given by the
soa_block::begin_all function:

in the soa_block<Ts...> type of the particles?

Maybe you could provide another implentation of the
emitter_t using your base_collection to see how they


Boost list run by bdawes at, gregod at, cpdaniel at, john at