При работе с некоторым кодом я столкнулся с падением производительности QT Creator. На самом деле он запускает поток, который занимает 100% ЦП в бесконечном цикле: даже закрытие процесса IDE, не убивая его, становится невозможным. Это полностью воспроизводимо на моей машине. Перед отправкой сообщения об ошибке я хочу получить подтверждение от других пользователей и собрать некоторую статистику для версий QT Creator, ОС, компилятора, STL и т.д. Код требует C++11 и выше.
После некоторого исследования я сократил свой код до самого короткого примера, который воспроизводит проблему (не смотрите на симантику кода, проблема в том, как его обрабатывает IDE):
#include <set>
int main() {
std::set<int> s;
auto iter = s.insert(1).first;
iter->second;
return 0;
}
Основные моменты:
- авто важно
- такое же поведение можно воспроизвести с помощью карты вместо набора
- insert важен, так как он возвращает не простой итератор, а парный итератор, bool>
- Строка iter->second симантически неверна, но это не важно (вы можете использовать std::set‹ std::pair>, чтобы исправить ее). Проблема в том, что IDE вылетает после iter->, что бы это ни значило.
Моя конфигурация: QT Creator 3.5.1 на основе Qt 5.5.1 (MSVC 2013, 32 бит); Windows 10.