У меня есть проект c ++ в visual studio, который только в ОДНОМ классе IntelliSense не может разрешить пару объявленных методов в заголовочном файле. Поэтому, когда я пытаюсь нажать «перейти к определению», IntelliSense не открывает исходный файл, потому что он не может найти определение метода.
Я уже пытался добавить файл cpp.hint
с объявлением макросов, используемых в этих методах. В других классах это помогло решить проблему, но не для этого класса. Я также каждый раз удалял папку ipch
и файл *.db
.
Я уже обнаружил, что IntelliSense может разрешить первый метод, объявленный после общего / защищенного / частного спецификатора:

Таким образом, переключение порядка помогает IntelliSense найти его ...

Одним из решений BAD было бы добавление общего / защищенного / частного спецификатора для каждого метода, но вы можете себе представить, что я не хочу этого делать. Я также работаю с Qt5, но я не думаю, что это проблема здесь. Я также не думаю, что проблема заключается в коде определений, потому что не имеет значения, какой метод стоит первым после спецификатора.
Кто-то уже сталкивался с такой проблемой и знает, как ее решить?
Спасибо за все ваши пожелания.
EDIT: Это определенно проблема Qt, когда я закомментирую определение Q_OBJECT
в классе, IntelliSense может найти все методы. К сожалению, я не могу скомпилировать свой код без него.