#include <boost/interprocess/managed_shared_memory.hpp>
#include <boost/interprocess/allocators/allocator.hpp>
#include <map>
using namespace boost::interprocess;
managed_shared_memory g_segment(create_only, "shared", 65536);
template<typename T>
struct shared_allocator: allocator<T, managed_shared_memory::segment_manager>
{
using base_=allocator<T, managed_shared_memory::segment_manager>;
shared_allocator(): base_(g_segment.get_segment_manager()) {}
template<typename U>
struct rebind final {
using other = shared_allocator<U>;
};
};
std::map<int, int, std::less<int>, shared_allocator<std::pair<int const, int>>> mapnn;