相关疑难解决方法(0)

我们应该通过引用还是通过值传递shared_ptr?

当一个函数采用shared_ptr(来自boost或C++ 11 STL)时,你传递它:

  • 通过const引用: void foo(const shared_ptr<T>& p)

  • 或按价值:void foo(shared_ptr<T> p)

我更喜欢第一种方法,因为我怀疑它会更快.但这真的值得吗还是还有其他问题吗?

您能否说出您选择的原因或案例,为什么您认为无关紧要.

c++ boost shared-ptr c++11

253
推荐指数
8
解决办法
10万
查看次数

boost :: interprocess :: shared_ptr threadsafe(和进程间安全)?

我想在线程之间共享数据,并在最后一个用户完成后自动删除它.这似乎在大多数情况下boost::interprocess::shared_ptr在一个boost::fixed_managed_shared_memory段中使用:但并非总是如此.

那么,是boost::interprocess::shared_ptr线程(和进程间) - 安全吗?

如果我在固定地址使用我的共享内存(我很确定这在我的64位(井,48位)地址空间中是可以的),是否可以使用普通boost::shared_ptr(这是线程安全)而不是?

一些澄清:

我使用的指针类型是plain void*,(我的共享内存映射到固定地址).

线程安全的问题是关于引用计数 - 即,是否允许同时复制/销毁在不同进程中同一事物的共享指针.不能访问不同线程中的相同共享指针,也不能访问指针.

c++ parallel-processing boost boost-interprocess

6
推荐指数
1
解决办法
2154
查看次数