在使用std::unique_ptr
带有我想要使用的自定义删除器std::make_unique
而不是全新的。我用的是VC++2013。在我看来,没有办法使用std::unique_ptr
如果您使用自定义删除器。我错过了什么还是事实确实如此?
附加信息:
我正在使用一个std::unique_ptr<HANDLE, custom_deleter>
保存打开的 COM 端口的 Windows 句柄。
我可以为此编写一个自定义 RAII 类,这不会非常困难,但我看到使用它会多么困难/困难/糟糕std::unique_ptr
.
整个要点make_unique
是封装“使用new
创建一个T
从给定的构造函数参数并使用delete
摧毁它”。
如果您想要自定义删除器,您还必须指定如何create对象,那么拥有放置制造者功能就不会再有任何收获。
我为某些独特的资源句柄编写了一些自定义制作函数的示例在这篇文章中 https://codereview.stackexchange.com/questions/4679/shared-ptr-and-file-for-wrapping-cstdio-update-also-dlfcn-h.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)