howardhinnant.github.io/incomplete.html

опытке использоватьauto_ptr с типом, который был объявлен с предварительным объявлением, как это:

class A;
...
std::auto_ptr<A> a;

деструкторA не называется (видимо, потому чтоauto_ptr внутреннеdeletes базовый указатель и деструктор для неполного типа не могут быть вызваны).

Тем не менее, тот же код работает нормально, и деструктор вызывается при использованииstd::shared_ptr вместоstd::auto_ptr, Как это можно объяснить?

Ответы на вопрос(1)

Ваш ответ на вопрос