Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: DiffEreD от Август 31, 2013, 01:37



Название: Qt Creator 2.8.1, noexcept и автодополнение кода (C++11)
Отправлено: DiffEreD от Август 31, 2013, 01:37
Суть проблемы такова. На Qt Creator 2.8.1 (и на ранних версиях тоже) вместе с компилятором mingw 4.8.1 для некоторых классов не работает автодополнение кода (например для std::array, std::make_pair, std::function и некоторых других), но сам код компилируется и работает нормально. Долго искал как это можно исправить но так ничего и не нашел. Решил просмотреть стандартные заголовки компилятора и вот что там забавное нашел: IDE подсвечивает красным некоторые шаблоные функции с noexcept спецификаторами, типа этого (из заголовка array):
Код:
void
swap(array& __other)
noexcept(noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())))
{ std::swap_ranges(begin(), end(), __other.begin()); }
Не может разпознать что это функция. Если закомментировать строчку с noexcept или даже просто убрать второй noexcept, то после обновления модели кода в IDE std::array уже начнет автодополнятся. Пробовал в других файлах - тоже "помогло". Короче, в Qt Creator баг какой то с noexcept и именно из за этого не корректно работает автодополнение кода.
Что бы кто посоветовал по этому поводу, может есть уже решение? Вряд ли комментировать стандартные заголовки хорошая идея.


Название: Re: Qt Creator 2.8.1, noexcept и автодополнение кода (C++11)
Отправлено: b-s-a от Сентябрь 02, 2013, 11:05
Напиши баг тут: https://bugreports.qt-project.org/