Написать класс-оболочку для дескриптора, который передается только по значению, относительно легко. Я пытаюсь определить, как лучше всего инкапсулировать дескрипторы, которые необходимо передать по адресу.
Например, написать оболочку для чего-то вроде SC_HANDLE, которая передается по значению в QueryServiceConfig(), не так сложно. Можно либо реализовать функцию-член, например .GetHandle(), либо реализовать operator().
Проблема (по крайней мере, для меня) заключается в функциях API, таких как RegOpenKeyEx(), которым нужен адрес HKEY.
Я читал, что оператор перегрузки & вообще плохая идея. Каков рекомендуемый способ сохранения инкапсуляции (или максимально возможной ее части) и особенно сбора ресурсов при разрешении доступа к функциям API?