std::shared_ptr 预分配内存

std::shared_ptr preallocation memory

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

我建议创建延迟初始化包装器 class,它本身包含足够的内存供您稍后要初始化的对象使用。这个包装器甚至可以有特殊的方法来调用析构函数中的新放置和删除初始化对象。