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