Classes and class hierarchies
C.149
Используйте `unique_ptr` или `shared_ptr`, чтобы не забыть вызвать `delete` для объектов, созданных с помощью `new`
Причина
Избегайте утечек ресурсов.
Пример
void use(int i)
{
auto p = new int {7}; // плохо: инициализация локального указателя через new
auto q = make_unique<int>(9); // ok: гарантирует освобождение памяти, выделенной для 9
if (0 < i) return; // возможный возврат с утечкой
delete p; // слишком поздно
}
Контроль
- Помечать инициализацию голого указателя результатом
new - Помечать
deleteлокальной переменной