Я работаю с std::shared_ptr
, и во время разработки программного обеспечения я встретил пару
случаев, которые позволяют мне сомневаться в управлении памятью. У меня была сторонняя библиотека, которая
дал мне всегда сырые указатели от функций, и в моем коде я преобразовал их
в std::shared_ptr
(от std, а не от boost. Кстати, в чем разница между
два?). Итак, скажем, у меня есть следующий код:
ClassA* raw = new ClassA;
std::shared_ptr<ClassA> shared(raw);
Что происходит, когда общий указатель выходит из области видимости (скажем, он был объявлен локально в функции
и теперь я покидаю функцию). Будет ли объект ClassA
еще существовать, потому что необработанный указатель
указывает на это?