want to efficiently overcome mismatch between key types in a map in Boost.Interprocess shared memory

You can use a custom comparator struct MyLess { template <typename T, typename U> bool operator()(const T&t, const U&u) const { return t<u; } }; In your code you can just typedef it as StringComparator UPDATE To the comments Multi Index To The Rescue If you want to replace the std::map/boost::container::map with a Boost Multi … Read more

Shared-memory IPC synchronization (lock-free)

Boost Interprocess has support for Shared Memory. Boost Lockfree has a Single-Producer Single-Consumer queue type (spsc_queue). This is basically what you refer to as a circular buffer. Here’s a demonstration that passes IPC messages (in this case, of type string) using this queue, in a lock-free fashion. Defining the types First, let’s define our types: … Read more