«Утечка памяти»? Почему вы конкретно говорите об утечке памяти?
Код, который вы разместили, производит неопределенное поведение . В этом случае может произойти все что угодно: утечка памяти, форматирование жесткого диска, сбой программы и т. Д.
P.S. Я знаю, что существует популярная городская легенда о том, что полиморфное разрушение без виртуального деструктора «может привести к утечке памяти». Я не знаю, кто изобрел эту чепуху и почему они решили использовать «утечку памяти» в качестве основного сценария того, что может произойти. На самом деле поведение в этом случае не имеет абсолютно никакого отношения к «утечке памяти». Поведение просто не определено.
С практической точки зрения, в вашем конкретном случае довольно очевидно, что у деструктора вашего auto_ptr
нет реальной возможности вызвать его, поэтому память, принадлежащая этому auto_ptr
, непременно будет утечка. Но опять же, это наименьшая из проблем этого кода.