
Thorsten Ottosen(e)k dio:
Ion Gaztañaga wrote:
The Associative Containers project can refer also to Shmem, since Shmem has implemented the full ordered vector family (flat_map, flat_set, flat_multimap and flat_multiset) for shared memory (these containers work also with std::allocator).
Please update the pagen then.
Done.
Another option is to take those containers out of Shmem (they have minor dependencies with Shmem framework) and present them as general purpose containers that also are useful for shared memory/memory mapped files. Like boost::unordered_xxx family, I would like to have just one container in Boost without duplicating it in other libraries.
But doesn't Shmem (why is this not called Boost.Shared Memory?) duplicate all containers?
It's called Boost.Interprocess now, but the I have still a lot of work to do to publish the first version. It duplicates all the containers but normal STL-like containers can be made compatible with shared memory only using the allocator::pointer typedef internally and using allocator::contruct/destroy to create elements. The last version of boost::unordered_xxx is compatible with shared memory.
The bad news is that Shmem flat_xxx containers are not documented, but it's not difficult to do it since they have the same interface as std::map/set family. The hard part is the portability to non-conforming compilers like VC6, but I think there are utilities in Boost to workaround these problems.
It's not good use of student time to do porting work. People need to move away from ancient compilers.
I agree. Regards, Ion