Недавно я смотрел замечательный разговор Херба Саттера о "Leak Free С++..." на CppCon 2016, где он рассказывал об использовании интеллектуальных указателей для реализации RAII (инициализация ресурсов - инициализация) - концепции и то, как они решают большую часть памяти проблемы утечки.
Теперь мне было интересно. Если я строго следую правилам RAII, что, кажется, хорошо, почему это может отличаться от того, чтобы сборщик мусора на С++? Я знаю, что с RAII программист полностью контролирует, когда ресурсы снова освобождаются, но разве это полезно для того, чтобы иметь сборщик мусора? Будет ли это действительно менее эффективным? Я даже слышал, что сборщик мусора может быть более эффективным, поскольку он может освобождать более крупные куски памяти за раз, а не освобождать небольшие фрагменты памяти по всему коду.