小编dev*_*imi的帖子

如何在Windows HANDLEs中使用C++标准智能指针?

我想知道是否有办法使用unique_ptr<T>Windows HANDLEs?

我正在考虑std::default_delete用特定的handle_trats呼叫替换CloseHandle.问题是HANDLE定义为void* unique_ptr<void>无法编译,因为sizeof(void)未定义.

到目前为止,我只看到两种可能性:

  1. 创建手柄的包装类,并使用它像这样:unique_ptr<new CHandle(h)>.这几乎使unique_ptr<T>自己无用.
  2. 使用HANDLE类似的特定智能指针类unique_ptr<T>.

您认为更好的选择是什么?你会建议什么?

这个问题可以扩展为COM IUnknown指针 - 可以CComPtr用任何标准智能指针代替吗?

c++ winapi c++11

8
推荐指数
2
解决办法
5070
查看次数

标签 统计

c++ ×1

c++11 ×1

winapi ×1