QList
не основан на контейнере STL и не имеет ничего общего с std::list
.
Правила аннулирования, указанные для контейнеров STL, не применимы.
Согласно документации Qt (и, насколько я понимаю), он использует массив указателей на элементы, если только элемент не больше void*
и не объявлен как movable (с Q_MOVABLE_TYPE).
В этом случае элемент непосредственно сохраняется в массиве, и ссылка будет недействительной, когда ваш список будет расти (массив указателей будет перераспределен).