我想在一个堆请求(如std :: make_shared)中为shared_ptr预先分配控制块和value_type的内存,但不要立即构造其中的任何对象.而当我真正需要构建对象使用放置新.可能吗? std :: make_shared或std :: allocate_shared似乎都无法解决我的问题. 最佳答案 我建议创建推迟的初始化包装器类,其中包含足够的内存,用于以后要初始化的对象.这个包装器甚至可以有特殊的方法在析构函数中调用placement new和delete初始化对象.
我想在一个堆请求(如std :: make_shared)中为shared_ptr预先分配控制块和value_type的内存,但不要立即构造其中的任何对象.而当我真正需要构建对象使用放置新.可能吗? std :: make_shared或std :: allocate_shared似乎都无法解决我的问题. 最佳答案 我建议创建推迟的初始化包装器类,其中包含足够的内存,用于以后要初始化的对象.这个包装器甚至可以有特殊的方法在析构函数中调用placement new和delete初始化对象.