Так что же происходит с указателем, если вы освобождаете объект, принадлежащий auto_ptr, но фактически не присваиваете его необработанному указателю? Кажется, что он должен быть удален, но у него никогда не будет шанса. Так он просочился "в дикую природу"?
void usingPointer(int* p);
std::auto_ptr<int> point(new int);
*point = 3;
usingPointer(point.release());
Примечание: я больше не использую auto_ptr, сейчас я использую tr1 :: shared_ptr. Эта ситуация просто заинтересовала меня.