在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;
};
我想我要的載體可訪問到其他進程,這樣就可以對其進行迭代,對不對?