我正在尝试使用 Boostcircular_buffer
和 Interprocess 库在共享内存中创建一个循环缓冲区。我编译并运行了Interprocess 文档中给出的示例,用于在共享内存中创建向量,没有问题。但是,当我修改它以使用 Boost circular_buffer 作为:
int main(int argc, char *argv[])
{
managed_shared_memory segment(create_only, "MySharedMemory", 65536);
const ShmemAllocator alloc_inst (segment.get_segment_manager());
MyCircBuffer *myCircBuf = segment.construct<MyCircBuffer>("MyCircBuffer")(alloc_inst);
return 0;
}
我得到一个编译错误(由 引起segment.construct()
)。知道我做错了什么吗?是不是因为circular_buffer
不是 中列出的容器之一/boost/interprocess/containers
,即它与 Interprocess 不兼容?
谢谢,
C