On 08/16/13 06:00, Thorsten Ottosen wrote: [snip]
- The classifier uses continuous storage in memory for objects of the same type, therefore it is expected to improve cache efficiency with respect to solutions that use pointers (and new to allocate objects), especially if the client code uses some cache-aware allocator.
I wanted to call my class template polymorphic_vector, taking base class and allocator template arguments. I imagined that the storage would be completely contigious, even when many different types of objects where stored into the container. This would give maximum cache efficiency.
Hi Thorsten,
I'm curious how you'd be able to store different types in contiguous
storage. I would guess the base class would have to have a virtual
derived_alignof and derived_sizeof methods which would
return alignof(Derived) and sizeof(Derived), and then the container
would use placement new and these virtual functions and a
container_buffer type std::vector<char> to figure out where
to place the next element in the container_buffer?
Since boost::fusion::vector