У меня есть общий указатель, который я поделил с системой. Позже я хочу заменить фактическое содержимое этих общих указателей, но все же сохранить все общие указатели действительными, поэтому они внутренне указывают на этот новый объект.Замена содержимого общего указателя?
Есть ли простой способ сделать это с помощью общих указателей?
Вроде как это я ищу - псевдокоде
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
EDIT: Я хочу, чтобы эффект этого, но менее gimicky
ModelPtr model1 = ModelPtr(new Model("monkey"));
memcpy(model1 .get(), new Model("donkey"), sizeof(Model));
Возможно, вы можете использовать 'shared_ptr>'? –
rodrigo
Будет ли '* model1 = Model {};' делать то, что вам нужно? – aschepler