在Boost.Interprocess中文档Where is this being allocated?中指出,Boost.Interprocess中容器使用在同一时间两种机制放置在共享存储器:Boost.Interprocess中存储器位置
- Boost.Interprocess中构造 <>,find_or_construct <> ...功能。这些函数将C++对象放入共享的内存中。但是这只放置对象,而不是这个对象可以动态分配的内存。
- 共享内存分配器。这些允许分配共享内存部分,以便容器可以动态地分配内存的片段来存储新插入的元素。
什么是用例为具有boost.vector其中内部存储器住在当前过程,但使用的共享存储器分配器,使得元件被放置在共享存储器?
如果我想分享这个结构到另一个进程:
struct Shared
{
vector<string> m_names;
vector<char> m_data;
};
我想我要的载体可访问到其他进程,这样就可以对其进行迭代,对不对?