jiangok
jiangok

Reputation: 2692

smart pointers in windows programming

Excluding STL, I only found CComPtr in C++ windows programming. Is there any other types of smart pointers in windows SDK? Thanks.

Upvotes: 1

Views: 1082

Answers (3)

selbie
selbie

Reputation: 104559

In the Windows SDK (specific to ATL), there is CAutoPtr(single item allocation) and CAutoVectorPtr (array allocation).

Upvotes: 1

Seva Alekseyev
Seva Alekseyev

Reputation: 61378

First, STL's and boost's smart pointers are available on Windows and there's nothing wrong with using those.

Speaking of purely Windows stuff, COM interface pointers, with their AddRef/Release lifetime management model, readily lends itself to smart pointers. There are some smart pointer classes in Windows-specific libraries that are geared towards storing COM interface pointers. In addition to the ATL's CComPtr<>, there's _com_ptr_t<> of Microsoft Native COM, and MFC's COleDispatchDriver. The latter is hardly ever used with the advent of Native COM. With the exception of CComPtr, those are used together with type library import facilities.

Upvotes: 1

Matt Kline
Matt Kline

Reputation: 10497

The MSDN article states that CComPtr is designed to be used with COM objects only. Generally Boost smart pointers are commonly used as a platform-independent C++ smart pointer library. Since the concept of smart pointers isn't bound to a particular OS, there's really no need to use a smart pointer implementation bound to Windows, even if that's the only platform you plan on developing the application for.

Upvotes: 0

Related Questions