我有一个在系统周围共享的共享指针。稍后,我想替换这些共享指针指向的实际内容,但仍然保持所有共享指针有效,因此它们在内部指向这个新对象。
有没有一种简单的方法可以使用共享指针来做到这一点?
有点像我正在寻找的 - 伪代码
typedef boost::shared_ptr<Model> ModelPtr
ModelPtr model1 = ModelPtr(new Model);
ModelPtr model2 = model1;
// make something like 'model1.get() = new Model' so model1, model2 both points to a new model
编辑:我想要这个效果,但不那么花哨
ModelPtr model1 = ModelPtr(new Model("monkey"));
memcpy(model1 .get(), new Model("donkey"), sizeof(Model));