История изменений
Исправление forCe, (текущая версия) :
Убирает? Да.
Нет. shared_ptr просто при своем разрушении уменьшает счетчик ссылок на объект и вызывает некоторый объект-функцию, если счетчик стал 0.
Где здесь, например, сборка мусора?
auto f = fopen("a.tmp", "r");
if (f) {
shared_ptr<FILE> fp(f, fclose);
// ...
}
Что? Мусор.
Нет. Следим за счетчиком использования некоторого ресурса и обрабатываем ситуацию уничтожения последней ссылки.
Или выделенная память, про которую все забыли - не есть мусор?
GC работает с памятью. shared_ptr - с любыми ресурсами.
Исходная версия forCe, :
Убирает? Да.
Нет. shared_ptr просто при своем разрушении уменьшает счетчик ссылок на объект и вызывает некоторый объект-функцию, если счетчик стал 0.
Где здесь, например, сборка мусора?
auto f = fopen("a.tmp", "r);
if (f) {
shared_ptr<FILE> fp(f, fclose);
// ...
}
Что? Мусор.
Нет. Следим за счетчиком использования некоторого ресурса и обрабатываем ситуацию уничтожения последней ссылки.
Или выделенная память, про которую все забыли - не есть мусор?
GC работает с памятью. shared_ptr - с любыми ресурсами.