Подробности
Недавно я обновился до Qt 5.11.2.В рамках выпуска был установлен Qt Creator 4.7.1.
Он поставляется с проверкой кода в режиме реального времени, которую я не нахожу полезной, и удалил, сняв отметку ClangCodeModel в разделе Помощь -> Плагины .Это единственная настройка, которую я сделал для Qt Creator.
Проблема
В этой версии Qt Creator у меня возникает следующая проблема:
При назначении статически приведенного указателядля переменной, объявленной как auto, автоматическое завершение кода не распознает ее, и мне приходится вводить код вручную.Код, введенный вручную, также не подсвечивается синтаксисом:
На рисунке показано только выделение синтаксиса.Код такой же, как в приведенном примере.
Примечание: проект компилируется без ошибок / предупреждений, когда код вводится вручную.
Этоработал как и ожидалось в предыдущих версиях Qt Creator, который я использовал.
Пример
Пожалуйста, рассмотрите следующий минимальный пример, который я написал, чтобы воспроизвести проблему:
main.cpp
class A {
public:
A::A() {
}
};
class B : public A {
public:
void foo() {
}
};
int main(int /*argc*/, char * /*argv[]*/)
{
A *a = new B();
auto *b = static_cast<B *>(a);
static_cast<B *>(a)->foo(); // "->foo();" is autocompleted
b->foo(); // Need to type "->foo();" manually
return 0;
}
Как заставить работать автозаполнение / подсветку синтаксиса?