std :: shared_ptr预分配内存

时间:2016-03-05 14:24:37

标签: c++ c++11 memory-management shared-ptr placement-new

我想在一个堆请求(如value_type)中为控制块和shared_ptr预先分配内存,但不要立即构造其中的任何对象。当我真的需要构建对象使用位置std::make_shared时。可能吗? newstd::make_shared似乎都无法解决我的问题。

1 个答案:

答案 0 :(得分:2)

我建议创建推迟的初始化包装器类,其中包含足够的内存,用于稍后要初始化的对象。这个包装器甚至可以有特殊的方法在析构函数中调用placement new和delete初始化对象。