Я создаю user_data примерно так:
bool
MyTreeModel::iter_nth_root_child_vfunc (int index, iterator & iter) const
{
iter .gobj () -> user_data = new UserData (...);
return true;
}
Я могу создавать пользовательские данные, но есть ли способ получать уведомления об уничтожении итератора, чтобы я мог удалить свои пользовательские данные?
Нет; user_data
является не владеющим указателем. Вы должны распараллелить дерево с контейнером на основе узлов (например, std::map
) и хранить ваши UserData
объекты в этом, с user_data
указатель, указывающий в контейнер.
Других решений пока нет …