Size: a a a

2020 June 08

p

polunin.ai in rust_offtopic
Антон ⚙️
В смысле нечего? В смысле, блин, нечего? Я делал пост с костылями для замыканий, неужели ни один из подходов не работает?
где
источник

А⚙

Антон ⚙️ in rust_offtopic
Telegram
Блог*
#prog #rust #моё

Rust, будучи достаточно низкоуровневым языком, тем не менее, даёт возможность использовать замыкания. Эти замыкания не требуют динамической аллокации памяти и могут размещаться на стеке. Вкупе с оптимизатором LLVM это увеличивает шансы на то, что в сгенерированном коде замыкания в явном виде вообще не окажутся. Тем не менее, есть и обратная сторона медали: тип замыкания зависит от того, какие значение оно захватывает, поэтому в Rust каждый литерал замыкания имеет свой собственный тип. Например, код вида let closures = [|x| x + 1, |x| x + 2]; не компилируется.

Один из паттернов, который можно встретить в коде на Rust — это возврат того или иного замыкания в зависимости от некоторого условия. Для обхода ситуации с уникальными типами замыкания есть как минимум два пути:
а) Поместить замыкание в кучу и вернуть указатель на него, а в качестве возвращаемого типа указать что-то вроде Box<dyn Fn(Foo, Bar) -> Baz>. Очевидный  недостаток — падение производительности на ровном месте. Более того, выделение…
источник

А⚙

Антон ⚙️ in rust_offtopic
polunin.ai
Этого без const generics не сделать🤷🏿‍♂
generic-array как-то справился
источник

p

polunin.ai in rust_offtopic
Антон ⚙️
generic-array как-то справился
я тоже уже справился
источник

V

Vetro in rust_offtopic
ору норм там рекстестер пытались поломать ниже
источник

V

Vetro in rust_offtopic
тут
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
о, а вот это то что я люблю! никакой воды, чисто по делу. аж прослезился.
источник

А⚙

Антон ⚙️ in rust_offtopic
Dollar Føølish
Подскажите тут внизу оператор запятая что-ли фолдится?
Мне кажется, это сделано главным образом ради того, чтобы компилятор не жаловался на неиспользуемый parameter pack
источник

DF

Dollar Føølish in rust_offtopic
Нет там запятая используется штоб все это выполнить
источник

DF

Dollar Føølish in rust_offtopic
В с++ есть удобная конструкция

int a = dropdb() , 5
источник

DF

Dollar Føølish in rust_offtopic
Очень очевидно, правда?
источник

DF

Dollar Føølish in rust_offtopic
Ещё оператор запятую можно перегрузить
источник

p

polunin.ai in rust_offtopic
Dollar Føølish
Ещё оператор запятую можно перегрузить
ор
источник

ML

Mike Lubinets in rust_offtopic
Слава
Скажите, в rust имеется decltype?
В расте он не нужен, так как локально есть полноценный вывод типов, а в сигнатурах ф-й нехуй.
источник

DF

Dollar Føølish in rust_offtopic
Странно почему только локально
источник

p

polunin.ai in rust_offtopic
Dollar Føølish
Странно почему только локально
ибо нехуй
источник

p

polunin.ai in rust_offtopic
все правильно
источник

DF

Dollar Føølish in rust_offtopic
Сабтайпинга же нет, можно и по всей программе выводить
источник

DF

Dollar Føølish in rust_offtopic
Вон какой-нибудь сраный камль выводил по всей
источник

p

polunin.ai in rust_offtopic
тогда ты смотришь в сигнатуру и не понимаешь что делает функция кек
источник