一、说明
上一节介绍了boost::interprocess::shared_memory_object类(文章链接),可以用来创建和管理共享内存。实际上,此类很少使用,因为它要求程序从共享内存读取和写入单个字节。 C++ 风格倾向于创建类对象并隐藏数据在内存中的存储位置和方式的细节。
Boost.Interprocess 提供了 boost::interprocess::managed_shared_memory,一个在 boost/interprocess/managed_shared_memory.hpp 中定义的类,用于支持托管共享内存。此类允许您实例化其内存位于共享内存中的对象,从而使这些对象自动可供访问相同共享内存的任何程序使用。
二、托管内存的案例
例 33.6。使用托管共享内存
#include <boost/interprocess/managed_shared_memory.hpp>
#include <iostream>
using namespace boost::interprocess;
int main()
{
shared_memory_object::remove("Boost");
managed_shared_memory managed_shm{open_or_create, "Boost", 1024};
int *i = managed_shm.construct<int>("Integer")(99);
std::cout <