标签: c++ c++11 memory-management shared-ptr placement-new
我想在一个堆请求(如value_type)中为控制块和shared_ptr预先分配内存,但不要立即构造其中的任何对象。当我真的需要构建对象使用位置std::make_shared时。可能吗? new或std::make_shared似乎都无法解决我的问题。
value_type
shared_ptr
std::make_shared
new
答案 0 :(得分:2)
我建议创建推迟的初始化包装器类,其中包含足够的内存,用于稍后要初始化的对象。这个包装器甚至可以有特殊的方法在析构函数中调用placement new和delete初始化对象。