据我了解智能指针,他们在那里以避免内存泄漏等。然而,通常还有需要发布的对象,但不是free
或delete
。有没有一些通用的方式来使用这样的指针与模板?将可释放对象包装成智能指针
举一个例子FILE
想到了,完成后应该使用fclose
。当然,还有其他类型的指针具有其独特的发布功能。那么我是否必须实施单独的包装来说明他们的个人发布方法,还是有更好的方法来做到这一点?
东西,可能这样使用:
smart_ptr<FILE, fclose> fl = fopen();
smart_ptr<IStream, T->Release> pFileStream = SHCreateStreamOnFile(...);
是的,标准库中的智能指针接受自定义发布函数。 –