LINUX.ORG.RU

История изменений

Исправление 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 - с любыми ресурсами.