Size: a a a

Rust — русскоговорящее сообществo

2020 September 29

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Пашечка
Но вообще это больше похоже на std::variant, исходя из того что я читал про новые стандарты, которыми нам пользоваться низя :(
А почему нельзя, кстати?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Вроде как C++ поддерживает обратную совместимость
источник

П

Пашечка in Rust — русскоговорящее сообществo
Emmanuel Goldstein
А почему нельзя, кстати?
Одна из целевых ОС: астра 1.5. А там древний gcc
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Пашечка
Одна из целевых ОС: астра 1.5. А там древний gcc
Госучреждение?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
А что-то мешает собирать на нормальной ОС? Линукс он и есть линукс.
источник

П

Пашечка in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Госучреждение?
РусБИТех. Надеюсь меня за такое признание бить не начнут)
источник

П

Пашечка in Rust — русскоговорящее сообществo
Emmanuel Goldstein
А что-то мешает собирать на нормальной ОС? Линукс он и есть линукс.
Всё должно быть сертифицировано, только официальные репозитории, плюс сборка на сертификации под конкретную ОСь. Всё потихоньку идет в лучшую сторону, потихоньку идет переход на vc15, при сборке под виндой, но всё это медленно.
источник

Э

Эрик in Rust — русскоговорящее сообществo
вафель 🧇
А кто-нибудь знает структуры данных вроде очередей с O(1) удалением во время итерации и O(1) вставкой в конец?

Мне видимо нужно что-то вроде linked list, но поскольку я часто  меняю список, то думаю аллокации угробят весь смысл.

Может есть что-то вроде vec-based linked list? (пока нагуглить не смог 😐)
Если T не оптимизируется под Option<T>, а ты всё равно будешь руками писать дрейнфильтр, то можно сделать bitvec + Vec<T>, чтобы места меньше кушало.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Если переход к сборке под вендой это «в лучшую сторону», то сочувствую
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
вы опять тут С++ обсуждаете
источник

П

Пашечка in Rust — русскоговорящее сообществo
Не, под винду и так собираемся, но в основном под vc12, что тоже несколько печалит
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Эрик
Если T не оптимизируется под Option<T>, а ты всё равно будешь руками писать дрейнфильтр, то можно сделать bitvec + Vec<T>, чтобы места меньше кушало.
Vec<MaybeUninit<T>> скорее уж
источник

Э

Эрик in Rust — русскоговорящее сообществo
вафель 🧇
Vec<MaybeUninit<T>> скорее уж
ManuallyDrop
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
вафель 🧇
Vec<MaybeUninit<T>> скорее уж
А где хранить информацию init оно в реальности или нет?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Можно вообще сделать на рейнджах и если один Some между двумя None, то он сдвигается. Тогда и итерация с меньшим количеством if-else, но реализовывать такое сложнее.
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Emmanuel Goldstein
А где хранить информацию init оно в реальности или нет?
Достаточно 1-2-го индексов
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
А што ето дрейнфильтер
источник

Э

Эрик in Rust — русскоговорящее сообществo
Эрик
Можно вообще сделать на рейнджах и если один Some между двумя None, то он сдвигается. Тогда и итерация с меньшим количеством if-else, но реализовывать такое сложнее.
Да и с одним Some не очень. Надо некий N разреженности, чтобы если N Some'ов (или меньше), а вокруг них None, то сдвигаешь эти Some в соседнюю рейнджу.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Dollar Føølish
А што ето дрейнфильтер
источник

Э

Эрик in Rust — русскоговорящее сообществo
Методом научного тыка вангую, что нормальная N будет 6.
источник