Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: teatralaik от Март 29, 2017, 16:57



Название: Подсветка синтаксиса в QtCreator
Отправлено: teatralaik от Март 29, 2017, 16:57
Добрый день! Креатор подсвечивает как ошибку совершенно исправный и компилирующийся gcc код из С++11 и С++14. Например:
Код:
std::this_thread::sleep_for(5s);
Или
Код:
std::map<int, int> mp;
decltype(mp)::mapped_type t;
Ужасно раздражает, можно ли что-то с этим сделать?
Заранее спасибо


Название: Re: Подсветка синтаксиса в QtCreator
Отправлено: ViTech от Март 29, 2017, 17:15
У меня на приведённый код ошибки не подсвечиваются.

На что именно и какая ошибка выводится? Какая версия креатора? Будет хорошо, если приложите минимальный проект (в частности проектный файл pro/qbs).


Название: Re: Подсветка синтаксиса в QtCreator
Отправлено: teatralaik от Март 29, 2017, 17:39
QtCreator 4.2.1
Код:
#include <iostream>
#include <chrono>
#include <thread>
#include <future>
#include <map>
using namespace std::chrono;
using namespace std::chrono_literals;
using namespace std;

int find_answer_to_the_ultimate_question_of_life()
{
    std::map<int, int> mp;
    decltype(mp)::mapped_type t; // <-- unexpected token t

    //Поиск ответа
    std::this_thread::sleep_for(5s); //  <-- unexpected token ';' got '<error>'
    return 42;
}

int main()
{

    std::future<int> f = std::async(std::launch::async,
                                    find_answer_to_the_ultimate_question_of_life);

    if (f.wait_for(5500ms) == std::future_status::ready ) <-- unexpected token ')' got '<error>'
        std::cout << "Answer is: " << f.get() << "\n";
    else
        std::cout << "Can't wait anymore\n";
    return 0;
}

Юзаю qmake, поэтому вот pro-файл:
Код:
TEMPLATE = app
CONFIG += console
CONFIG += c++14

SOURCES += main.cpp

QMAKE_CXXFLAGS=-std=c++14


Название: Re: Подсветка синтаксиса в QtCreator
Отправлено: __Heaven__ от Март 29, 2017, 18:02
QMAKE_CXXFLAGS=-std=c++14 - лишнее.

Под виндой у меня всё робит. 4,2,0


Название: Re: Подсветка синтаксиса в QtCreator
Отправлено: ViTech от Март 29, 2017, 18:05
Проверьте, включен ли в креаторе плагин ClangCodeModel ("Help/About Plugins..." ).

Если его отключить, то у меня тоже эти ошибки начинают подсвечиваться. Если он включен, то всё нормально.

В настройках креатора "Options/C++/Code Model" можно настраивать, какие предупреждения будут анализироваться  и подсвечиваться.


Название: Re: Подсветка синтаксиса в QtCreator
Отправлено: teatralaik от Март 30, 2017, 12:05
Да, действительно, теперь не подкрашивает! спасибо