【发布时间】:2015-07-02 21:35:03
【问题描述】:
在 boost 进程间的所有示例中,我只看到它在 main() 中初始化。
#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 << *i << '\n';
std::pair<int*, std::size_t> p = managed_shm.find<int>("Integer");
if (p.first)
std::cout << *p.first << '\n';
}
这不是一个具体的提升问题,而是一个 C++ 问题,我知道我可以创建一个对象并使用初始化列表初始化 managed_shm,但我想知道是否有办法像 @ 一样声明它987654324@ 然后像managed_shm = new managed_shm(open_or_create, "Boost", 1024); 一样初始化它?
我已经看到了 managed_shared_memory 标头,但他们似乎没有提供任何选项。
【问题讨论】:
标签: c++ boost boost-interprocess