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

Добрый вечер, коллеги. Вопрос по паттернам: допустим, есть реализация паттерна

Состояние https://godbolt.org/z/4nevPEjre

Не могу придумать, можно ли как-то реализвоать этот же паттерн, избегая использования динамической памяти?
Например, как-то использовать полиморфизм через ссылки, а объекты состояний создавать на стеке 🤔

может у кого-нибудь есть полезные соображения по этому поводу?

16 ответов

24 просмотра

Возможно, вы хотите что-то такое?

Bit128- Автор вопроса
Ofee Oficsu
Возможно, вы хотите что-то такое?

интересный концепт, спасибо (но для текущей задачи боюсь не влезет, надо поколупать, вроде no-dependencies / header only)

Bit128
интересный концепт, спасибо (но для текущей задачи...

А что именно не влезет? Судя по всему, там есть опциональная поддержка SSO. Сама библиотека — некоторый гибрид std::variant (без явного перечисления типов) и std::any (с явным интерфейсом) Но вот что касается того, насколько готова библиотека для прода — я не уверен, ибо сам не использовал её активно

Bit128- Автор вопроса
Ofee Oficsu
А что именно не влезет? Судя по всему, там есть оп...

потому и говорю - надо поколупать, может и подойдёт 😊 (чем и занимаюсь)

Fliweight ?

Bit128- Автор вопроса
Ilya Zviagin
Fliweight ?

тут, получается, у меня один объект может быть с множеством разных состояний если я понимаю, легковес - это наоборот 🤔

Bit128
потому и говорю - надо поколупать, может и подойдё...

Я вот такой пример собрал из вашего кода: https://godbolt.org/z/rMG6MbMMo upd: https://godbolt.org/z/aT5c6aGY1 EmptyState, естественно, лишний, но я добавил его, чтобы быть максимально близко к исходному примеру

Bit128- Автор вопроса
Ofee Oficsu
Я вот такой пример собрал из вашего кода: https://...

спасибо большое, буду пробовать её на МК и разбираться с магией, которая задаёт app в состояние то есть te::call( вот тут ) а то штатными средствами через ссылки (https://godbolt.org/z/xxT1n7KhP) как-то нехорошо что ненужные объекты должны где-то висеть постоянно (ладно бы переключились часто, а так просто мёртвый груз в памяти получается)

Bit128
спасибо большое, буду пробовать её на МК и разбира...

буду пробовать её на МК и разбираться с магией, которая задаёт app в состояние то есть te::call( вот тут ) И да благославит вас Господь

Bit128- Автор вопроса
Kelbon
буду пробовать её на МК и разбираться с магией, к...

это да, но хотелось бы чтобы работало и без его помощи 😃

Bit128- Автор вопроса
Kelbon
буду пробовать её на МК и разбираться с магией, к...

в ведь и справда с перепою благослвовил благословил наличием rvalue ссылок и move-семантики если кому инетерсно, в итоге Состояние (с двусторонней связью Объект<—>Состояние) на стеке вышло совсем простенько (в данном случае) если вдруг кому интересно 🤔 https://godbolt.org/z/T91fe9a7E

Bit128
в ведь и справда с перепою благослвовил благослов...

вы уверены что хорошая идея брать на что то указатель а потом просто забывать это что то?

Bit128- Автор вопроса
Kelbon
вы уверены что хорошая идея брать на что то указат...

в общем смысле - нет, конечно в данном случае - все объекты на стеке, у всех есть строгое время жизни, порядок инициализации и удаления или я что-то упустил 🤔 UDP: ну да, упустил UB упустил, на двух разных компиляторах ведёт себя по-разному, на одном работает на другом - нет

Bit128
в общем смысле - нет, конечно в данном случае - вс...

временные объекты живут до окончания выражения в котором они присутствуют

Bit128- Автор вопроса
Kelbon
временные объекты живут до окончания выражения в к...

уже вижу, благодарю за уточнение 😊 рано обрадовался случайному результату :-\

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта