除了STL之外,我只在C ++ windows编程中找到了CComPtr。 Windows SDK中是否还有其他类型的智能指针?感谢。
答案 0 :(得分:1)
首先,Windows上提供STL和boost的智能指针,使用它们并没有错。
说到纯粹的Windows内容,COM接口指针及其AddRef / Release生命周期管理模型很容易适应智能指针。 Windows专用库中有一些智能指针类,用于存储COM接口指针。除了ATL的CComPtr<>之外,还有_com_ptr_t<> Microsoft Native COM和MFC的COleDispatchDriver。后者很难用于Native COM的出现。除CComPtr外,它们与类型库导入工具一起使用。
答案 1 :(得分:1)
在Windows SDK(特定于ATL)中,有CAutoPtr(单项分配)和CAutoVectorPtr(阵列分配)。
答案 2 :(得分:0)
MSDN article表示CComPtr仅用于COM对象。通常Boost smart pointers通常用作独立于平台的C ++智能指针库。由于智能指针的概念并未绑定到特定的操作系统,因此实际上不需要使用绑定到Windows的智能指针实现,即使这是您计划开发应用程序的唯一平台。