Size: a a a

2021 April 04

TK

Traveller Kolsky in rust_offtopic
Почему b живёт дольше, чем a?
источник

EG

Emmanuel Goldstein in rust_offtopic
Раскомментируй третий принт и оно всё равно скомпилируется
источник

EG

Emmanuel Goldstein in rust_offtopic
Потому что наоборот, разумеется
источник

H

Hirrolot in rust_offtopic
она скомпилировалаьс
источник

EG

Emmanuel Goldstein in rust_offtopic
А в моей версии третий принт не компилируется
источник

EG

Emmanuel Goldstein in rust_offtopic
Твоя версия unsound
источник

H

Hirrolot in rust_offtopic
ой сложно
источник

EG

Emmanuel Goldstein in rust_offtopic
источник

H

Hirrolot in rust_offtopic
лучше пойду подрочу
источник

EG

Emmanuel Goldstein in rust_offtopic
Используя инвариантные лайфтаймы, компилятор можно заставить трекать что угодно, по сути
источник

TK

Traveller Kolsky in rust_offtopic
Я не понимаю, зачем отдельно сделан Id и Guard и почему в make_guard! сделана if false-ветвь для реализации дропа уникальной структуры, не относящейся ни к чему.
источник

EG

Emmanuel Goldstein in rust_offtopic
Реализация дропа нужна, чтобы компилятор не мог свести лайфтаймы структур к одинаковому
источник

TK

Traveller Kolsky in rust_offtopic
А, ок
источник

TK

Traveller Kolsky in rust_offtopic
Теперь понял
источник

TK

Traveller Kolsky in rust_offtopic
Да, классная вещь
источник

TK

Traveller Kolsky in rust_offtopic
Но она всё ещё позволяет ведь пересекаться 'a и 'b?
источник

TK

Traveller Kolsky in rust_offtopic
То есть можно ли взять и подставить a вместо b?
источник

EG

Emmanuel Goldstein in rust_offtopic
Нет, в этом и прикол
источник

EG

Emmanuel Goldstein in rust_offtopic
Посмотри вот сюда для более простого примера без макросов
источник

EG

Emmanuel Goldstein in rust_offtopic
Лайфтаймы инвариантные
источник