
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:
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_collect...
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