【发布时间】:2017-07-26 10:21:28
【问题描述】:
在 Boost.Interprocess 文档 Where is this being allocated? 中指出,Boost.Interprocess 容器同时使用两种机制放置在共享内存中:
- Boost.Interprocess construct、find_or_construct...函数。这些函数将 C++ 对象放在共享 记忆。但是 this 只放置对象,而不是 this 的内存 对象可以动态分配。
- 共享内存分配器。这些允许分配共享内存部分,以便容器可以动态分配片段 内存来存储新插入的元素。
在当前进程中存在内部内存的 boost.vector 的用例是什么,但使用共享内存分配器以便将元素放置在共享内存中?
如果我想将此结构共享给另一个进程:
struct Shared
{
vector<string> m_names;
vector<char> m_data;
};
我想我希望其他进程可以访问这些向量,以便它可以迭代它们,对吧?
【问题讨论】:
标签: c++ boost boost-interprocess