我有共享的指针,我已经在系统中共享。稍后,我想将这些共享指针的实际内容替换为指向,但仍然保持所有共享指针有效,因此它们在内部指向此新对象。替换共享指针的内容?
有一种简单的方式与共享指针做到这一点?
有点像这个我要找 - 伪代码
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
编辑: 我想这样的效果,但不太gimicky
ModelPtr model1 = ModelPtr(new Model("monkey"));
memcpy(model1 .get(), new Model("donkey"), sizeof(Model));
也许你可以使用'shared_ptr的>'? –
rodrigo
'* model1 = Model {};'做你需要的吗? – aschepler