Как использовать стандартные интеллектуальные указатели C++ с дескрипторами Windows HANDLE?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как использовать стандартные интеллектуальные указатели C++ с дескрипторами Windows HANDLE?

Сообщение Anonymous »

Мне интересно, есть ли способ использовать unique_ptr с HANDLE Windows?

Я думал заменить std::default_delete на конкретный handle_trats, который вызывает CloseHandle. Проблема в том, что HANDLE определен как void* unique_ptr не будет компилироваться, поскольку sizeof(void) не определен.

Пока я вижу только две возможности:
  • Создать класс-оболочку для HANDLE и использовать его следующим образом: unique_ptr. Это в значительной степени делает сам unique_ptr бесполезным.
  • Используйте специальный класс интеллектуального указателя HANDLE, который напоминает unique_ptr.
Как вы думаете, что лучше выбрать? Что бы вы предложили?

Вопрос можно распространить на указатели COM IUnknown — можно ли заменить CComPtr любым из стандартных интеллектуальных указателей?

Подробнее здесь: https://stackoverflow.com/questions/984 ... ws-handles
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»