【发布时间】:2019-08-01 01:37:34
【问题描述】:
我想知道是否有办法将unique_ptr<T> 与 Windows HANDLE 一起使用?
我正在考虑将std::default_delete 替换为调用CloseHandle 的特定handle_trats。问题是 HANDLE 定义为 void* unique_ptr<void> 不会编译,因为 sizeof(void) 未定义。
到目前为止,我只看到两种可能性:
- 为 HANDLE 创建一个包装类并像这样使用它:
unique_ptr<new CHandle(h)>。这几乎使unique_ptr<T>本身毫无用处。 - 使用类似于
unique_ptr<T>的HANDLE特定智能指针类。
你认为什么是更好的选择?你有什么建议?
这个问题可以扩展到COM IUnknown 指针——CComPtr 可以被任何标准智能指针替换吗?
【问题讨论】: