умные указатели в программировании Windows - PullRequest
1 голос
/ 17 апреля 2011

За исключением STL, я нашел только CComPtr в программировании на C ++ для Windows. Есть ли другие типы умных указателей в Windows SDK? Спасибо.

Ответы [ 3 ]

1 голос
/ 19 апреля 2011

Во-первых, интеллектуальные указатели STL и boost доступны в Windows, и в этом нет ничего плохого.

Говоря о чисто Windows-компонентах, указатели COM-интерфейса с их моделью управления временем жизни AddRef / Release легко поддаются самооценке.на умные указатели.В библиотеках для Windows есть несколько классов интеллектуальных указателей, предназначенных для хранения указателей на интерфейс COM.В дополнение к CComPtr ATL <>, есть _com_ptr_t <> Native COM от Microsoft и COleDispatchDriver MFC.Последний вряд ли когда-либо использовался с появлением Native COM.За исключением CComPtr, они используются вместе со средствами импорта библиотеки типов.

1 голос
/ 22 апреля 2011

В Windows SDK (специфично для ATL) есть CAutoPtr (выделение одного элемента) и CAutoVectorPtr (выделение массива).

0 голосов
/ 19 апреля 2011

В статье MSDN говорится, что CComPtr предназначен для использования только с COM-объектами. Обычно Boost smart-указатели обычно используются в качестве независимой от платформы библиотеки C ++-указателей. Поскольку концепция интеллектуальных указателей не привязана к конкретной ОС, на самом деле нет необходимости использовать реализацию интеллектуальных указателей, привязанную к Windows, даже если это единственная платформа, для которой вы планируете разработку приложения.

...