Разве std::unique_ptr
не предназначен для того, чтобы быть уникальным указателем на память, и никакой другой указатель не должен указывать на эту память?
Тогда почему std:unique_ptr
имеет функцию-член get()
, которая возвращает необработанный указатель на память, принадлежащую std::unique_ptr
?
Итак, используя get()
, мы можем создать множество владельцев (необработанных указателей) на память std::unique_ptr
, разве это не бессмысленно?
std::unique_ptr
(в правильной области), вы можете безопасно использовать необработанный указатель (полученный с помощьюget()
) во всей этой области, зная, что он будет удален в соответствующее время. - person Galik   schedule 31.10.2014delete ptr.get()
до того, как это выйдет за рамки? - person 0x499602D2   schedule 31.10.2014get
. - person Mats Petersson   schedule 31.10.2014