make_shared如何使用非默认内存管理

时间:2013-04-07 07:20:04

标签: c++ c++11 shared-ptr make-shared

我对标准有疑问..

所以,假设我有管理内存分配的池......

我想使用shared_ptr并检查API ..

正如预期的那样,我看到对于shared_ptr我控制指针的分配,我可以给它一个dealloction函数,Perfect !!

现在我看过STL的讲座,我发现maked_shared的内存效率更高(因为它可以在同一个地方分配控制块和ptr) 显然我直接去了maked_shared api,结果发现make_shared强迫我只使用new / delete .. 所以问题是:

  1. 我说错了吗?只有新/删除?
  2. 如果是,为什么?
  3. 谢谢!

1 个答案:

答案 0 :(得分:3)

我相信您可以使用std::allocate_shared来允许您使用自己的分配器。