История изменений
Исправление bugfixer, (текущая версия) :
если где-то произошла mutable операция — ставим ptr на этот чанк кэша в nullptr
Вот. Вот оно. Если бы Вам удалось полностью избавиться от зависимости tree на tree_view (ie заставить tree_view правильно работать без active feedback от tree) горизонты для дальнейших улучшений были бы гораздо шире. Например можно иметь несколько tree_view на каждый tree, можно в каждом instance иметь свою стратегию синхронизации, можно partition underlying tree (позволю себе предположить что Вы параллельными вычислениями занимаетесь - там бы это возможно было очень полезно), etc.
ПыСы. Я было подумал что Вы что-то более сложное задумали. Например tree может вести log последних изменений в каком то виде, и view смотрит на этот log чтобы отдать наиболее актуальные данные без полного переиндексирования tree, etc.
Исходная версия bugfixer, :
если где-то произошла mutable операция — ставим ptr на этот чанк кэша в nullptr
Вот. Вот оно. Если бы Вам удалось полностью избавиться от зависимости tree на tree_view (ie заставить tree_view правильно работать без active feedback от tree) горизонты для дальнейших улучшений были бы гораздо шире. Например можно иметь несколько tree_view на каждый tree, можно в каждом instance иметь свою стратегию синхронизации, можно partition underlying tree (позволю себе предположить что Вы параллельными вычислениями занимаетесь - там бы это возможно было очень полезно), etc.
ПыСы. Я было подумал что Вы что-то более сложное задумали. Например tree может вести log последних изменений в каком то виде, и view смотрит на этот log чтобы отдать наиболее актуальные данные без полного переиндексироаания tree, etc.