Как использовать стандартные интеллектуальные указатели 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

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