Boost logo

Boost :

Subject: Re: [boost] [poly_collection] Request for comments: fast polymorphic collections
From: Joaquin M López Muñoz (joaquinlopezmunoz_at_[hidden])
Date: 2016-11-06 15:22:14


El 06/11/2016 a las 17:11, Larry Evans escribió:
> Thanks for the update Joaquin.
>
> I noticed you also mentioned this library in reponse to
> another thread here:
>
> http://lists.boost.org/Archives/boost/2016/10/231186.php

Mmm... on that particular thread I mentioned a different set of blog
entries related to
DOD, SOA/AOS etc. This is rather a different beast having to do with dynamic
polymorphism, which I think the SOA/AOS discussion is not particularly
concerned about.

> [...]
>
> But then, I looked at the documentation here:
>
> http://rawgit.com/joaquintides/poly_collection/website/doc/html/poly_collection/an_efficient_polymorphic_data_st.html
>
>
> 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>
> soa_tuple=std::tuple<std::vector<Ts>...>;

The data structure in (candidate) Boost.PolyCollection is not meant to
be used
as a SOA structure where the different attributes of an entity are laid
out contiguously,
but as a decomposition of a linear sequence of polymorphic objects into
several segments
dedicate to each of the concrete types being dealt with. In particular,
traversing the entire
sequence is done by traversing each segment in succession, which looks
to me hardly
similar to SOA access patterns. Maybe I'm missing something?

Joaquín M López Muñoz


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