Итак, я изучаю C++ уже несколько месяцев, и я столкнулся с странным явлением с моей IDE. (Jetbrains CLion FTW!)Getter for Windows handles
My IDE может генерировать геттеры для членов, автоматически определяя тип, const или нет и другие ключевые слова. Очевидно, что генерация не идеальна, поэтому я обычно не использую эту функцию. Поэтому на данный момент я сосредоточен на Windows API, который требует работы с ручками. Так что что-то действительно странное происходит, когда я генерирую getter для дескриптора (HINSTANCE, HWND, HDC и т. Д.).
Say Я член определяется следующим образом:
HDC m_hDeviceContext;
Тогда, когда мой IDE генерирует поглотитель это выглядит примерно так:
const HDC__* getDeviceContext() const...
Я так растерялся, почему тип HDC__. Имеет смысл, что это указатель, поэтому дескриптор объявляется как указатель (typedef struct name ## __ * name) в winnt.h.
Может ли кто-нибудь дать мне некоторое представление о том, почему это происходит? Это ошибка с моей IDE, потому что всякий раз, когда я вижу примеры getters, которые возвращают дескриптор, они обычно просто возвращают этот тип дескриптора.
Это похоже на ошибку с вашей IDE. Или, может быть, где-то здесь. Или, по крайней мере, дефект дизайна (если это не настройка). – immibis
Вы, вероятно, правы, CLion довольно новый. Что он должен генерировать? – oliveryas01
Я бы ожидал, что он будет генерировать 'HDC getDeviceContext() const {return m_hDeviceContext;}', конечно. – immibis