【发布时间】:2015-10-14 08:16:15
【问题描述】:
据我所知,智能指针的存在是为了避免内存泄漏等。然而,经常有一些对象也需要释放,但不是free 或delete。是否有一些通用的方法可以将此类指针与模板一起使用?
想到一个例子FILE,完成后应该使用fclose。当然,还有其他类型的指针具有自己独特的释放功能。那么我是否必须实现单独的包装器来说明它们各自的发布方法,还是有更好的方法来做到这一点?
可以这样使用的东西:
smart_ptr<FILE, fclose> fl = fopen();
smart_ptr<IStream, T->Release> pFileStream = SHCreateStreamOnFile(...);
【问题讨论】:
-
是的,标准库中的智能指针接受自定义发布函数。