Я пытаюсь сделать глубокую копию для C++ boost :: shared_ptr.глубокая копия для C++ boost :: shared_ptr
struct A{
boost::shared_ptr<const Data> dataPtr;
A(const A& aSource) {
dataPtr.reset(new const Data);
*dataPtr = *(aSource.dataPtr);
};
Но, я получил сообщение об ошибке: ошибки: неинициализированный Const в «новый» из «сопзИте структуры А.
Если я не хочу бросить сопзЬ, как справиться с этим?
Любая помощь будет оценена по достоинству.
Спасибо!
Таким образом, DataPtr будет указывать на неконстантные данные из-за const_cast? благодаря ! –
Весь смысл 'shared_ptr' заключается в том, чтобы избежать глубокой копии. Если вам нужна глубокая копия, вам нужен другой тип указателя. (Вам также требуется соглашение о том, как делать глубокую копию. «Базовая *» может на самом деле указывать на «Derived», и это «Derived», которую нужно скопировать). –