Не е ли 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