На веб-сайте boost.org я видел пример предотвращения удаления px.get () для shared_ptr (http://www.boost.org/doc/libs/1_51_0/libs/smart_ptr/sp_techniques.html#prevent_delete).
Это хороший метод, и я хотел бы применить его с помощью std :: unique_ptr в C ++ 11, и после некоторого изучения инструментов я не могу полностью заставить их пример работать с std :: unique_ptr.
Можно ли предотвратить вызов delete px.get () для std :: unique_ptr?
Вот код с веб-сайта boost.org, показывающий, как предотвратить вызов delete px.get:
class X
{
private:
~X();
class deleter;
friend class deleter;
class deleter
{
public:
void operator()(X * p) { delete p; }
};
public:
static shared_ptr<X> create()
{
shared_ptr<X> px(new X, X::deleter());
return px;
}
};
delete
по указателю, полученному отstd::unique_ptr::get
! - person Christian Rau   schedule 27.09.2012