170 похожих чатов

Можно поподробней? Куда копать?

29 ответов

17 просмотров

Иерархия подсказывает что это просто свойства Property, updateable, signaling etc. Которые можно выразить может даже битовой маской. И это может быть просто Property<T, Policy> Ну и дальше рулить реальными методами в зависимости от Policy. template<class T> using UpdateableProperty = Property<T, PropertyPolicy::Updateable>

Cyan-idle Автор вопроса
Dmitry Sokolov
Иерархия подсказывает что это просто свойства Prop...

Каждый уровень также добавляет необходимые ему данные Имлементируют onChange() и хранят: 1) Updatable<> - ссылку на объект, который нужно пометить грязным, а также два флага "грязный", "был грязным". 2) Plain<> - просто булеан флаг, что грязный Реимплементируют onChange() и хранят: 3) Signal<> - подмешивает интерфейс сигнала (shared<структура синхронизации>), чтобы пометить сразу несколько объектов грязными 4) MuxSignal<> - см выше, но также еще и "текущую цель", работает также как сигнал, но только на один слот, который можно поменять в любой момент

Cyan-idle Автор вопроса
Cyan idle
Каждый уровень также добавляет необходимые ему дан...

Потенциально добавятся еще возможные "перегрузки".

Cyan-idle Автор вопроса
Dmitry Sokolov
Иерархия подсказывает что это просто свойства Prop...

Я думаю попробовать чтото вроде template<typename T, typename...Policies> Property: public Policies... { onChange() { Policies::onChange().... (ну или как нибудь по очереди вызвать) } } Т.е. та же идея сборки по очереди, но слегка по другому using Prop = Reimplement<Implement<Property<T>>; vs. using Prop = Property<T, Implement, Reimplement>;

Я б делал одним классом. Всякие наследования всё равно overhead. Если нужны доп. данные, можно сделать просто policy-based layout.

Cyan-idle Автор вопроса
Cyan-idle Автор вопроса
Cyan idle
и храним мембером?

допустим у меня bidirect list, front я храню вообще всегда, а back/size опционально получаю 4 варианта layout: {front,back,size},{front,size},{front,back},{front,size}

Dmitry Sokolov
допустим у меня bidirect list, front я храню вообщ...

тут я бы выкинул варианты {front, size}, кстати, он дважды повторяется

disba1ancer
тоже исправил

ну и зря, вариант с отсутствием back для bidirect тоже возможен, nullptr вполне себе sentinel

Dmitry Sokolov
ну и зря, вариант с отсутствием back для bidirect ...

но тогда мы теряем возможность ходить в обратном направлении, т.е. с конца списка

Dmitry Sokolov
Из контейнера да, из итератора нет.

итератор на конец мы не всегда сможем получить, так что я бы предпочёл вариант с началом и концом

disba1ancer
итератор на конец мы не всегда сможем получить, та...

в случае отсутствия back end всегда nullptr, это просто не циклический список

а, ну если имеется в виду rend, то да

Dmitry Sokolov
а, ну если имеется в виду rend, то да

или хотя бы end от которого можно делать --

disba1ancer
или хотя бы end от которого можно делать --

если не нужен reverse проход и вставка в конец, то как бы вот, можно

Dmitry Sokolov
если не нужен reverse проход и вставка в конец, то...

ну это очевидно, но не моё предпочтение

disba1ancer
ну это очевидно, но не моё предпочтение

Это просто возможности. Реально пользую только bidirect с front/back и чаще всего без size.

disba1ancer
норм выбор

А, ну и forward тож без size.

Dmitry Sokolov
А, ну и forward тож без size.

тоже норм, но в целом он менее юзабален

disba1ancer
тоже норм, но в целом он менее юзабален

часто он оооочень юзабелен это доп данные с минимальным overhead если их нет

Dmitry Sokolov
часто он оооочень юзабелен это доп данные с минима...

последний раз когда хотел им воспользоваться я отказался от идеи им пользоваться

disba1ancer
последний раз когда хотел им воспользоваться я отк...

Да ладно. Это ж простейший из списков. У тебя есть head и у каждого элемента next. Да, у него много что O(N), ну и что... Им не менее удобно пользоваться.

Dmitry Sokolov
Да ладно. Это ж простейший из списков. У тебя есть...

ну у меня так получилось, что не стал не нужен

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта