Суть проблемы такова. На 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 и именно из за этого не корректно работает автодополнение кода.
Что бы кто посоветовал по этому поводу, может есть уже решение? Вряд ли комментировать стандартные заголовки хорошая идея.