Насколько я понимаю интеллектуальные указатели, они существуют, чтобы избежать утечек памяти между прочим. Однако часто есть объекты, которые также необходимо освободить, но не на free
или delete
. Есть ли общий способ использования таких указателей с шаблоном?Обтекание освобождаемого объекта умным указателем
Приводится пример FILE
, который должен использовать fclose
, когда это будет сделано. Конечно, есть и другие указатели с уникальными функциями релиза. Так что я должен реализовать отдельные оболочки для учета их индивидуального метода выпуска или есть лучший способ сделать это?
Что-то, что может быть использовано как это:
smart_ptr<FILE, fclose> fl = fopen();
smart_ptr<IStream, T->Release> pFileStream = SHCreateStreamOnFile(...);
Да, интеллектуальные указатели в стандартной библиотеке принимают пользовательские функции выпуска. –