Re[14]: Библиотека для создания графических интерфейсов польз
От: c-smile Канада http://terrainformatica.com
Дата: 15.09.17 17:47
Оценка: +1
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, c-smile, Вы писали:



CS>>Там больше проблемы не циклическим dispatching по существу (который тоже есть как проблема), а с ownership ибо QObject это refcounted штука.

CS>>Т.е. замкнутая цепочка slot subscribers может быть неудаляемой обычным способом.

CS>>Но это собственно не Qt проблема, а общая для refcounted систем.


SaZ>А подробнее можно? Что такое замкнутая цепочка подписчиков? Типа объект А подписан на Б, Б подписан на А? С удалением таких вещей в Qt проблем нет.


Помнится на заре моего использования Qt этот самый QObject использовал обычный refcount.
Сейчас ситуация явно изменилась как я увидел из этой ветки, спасибо всем отписавшимся — узнал что-то новое — и это здорово.

На самом деле вся инфраструктура QObject как оказалось еще более навороченна (тяжела?) чем представлялось.

У каждого QObject есть еще QObjectData. Т.е. дополнительная косвенность обращений.
А каждый QPointer содержит в себе QWeakPointer который уже есть refcounter штука


В то же самое время HTML DOM это direct parent-child tree:

class node : refcounted_resource {
  element* parent;
  uint     index; // in parent children collection
}

class element: node {
  vector<handle<node>> children;
}


Т.е. построено на прямых pointers — более легковесное.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.