Я думал заменить 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
Мобильная версия