Этот пример был взят из книги Страуступа, третье издание, раздел 14.4.2:
void f (Point p1, Point p2, auto_ptr<Circle> pc, Shape* pb)
{
auto_ptr<Shape> p (new Rectangle(p1 ,p2));
auto_ptr<Shape> pbox(pb);
p->rotate(45);
/ / ...
if (in_a_mess ) throw Mess();
/ / ...
}
"Здесь прямоугольник, форма, на которую указывает pb, и круг, на который указывает pc, удаляются лиили не исключение. "