К
swap у тебя просто меняет переменные a и derefed местамиТак, всё-таки, есть ли решение у этой задачи без Box?
Size: a a a
К
swap у тебя просто меняет переменные a и derefed местамиЭ
Э
AV
swap_unsized<T: !Sized>, но такого нет, насколько я вижу по доке стдВ
swap_unsized<T: !Sized>, но такого нет, насколько я вижу по доке стд!Sized баунд).AV
!Sized баунд).В
&mut полученную из Arc и из Box?) это один и тот-же типAV
&mut полученную из Arc и из Box?) это один и тот-же типВ
*const T который в них лежитAV
<*mut T>::swap where T: ?Sized :)AV
*const T который в них лежит*mut TT: Sized и T: !Sized, и с каждым из них понятно, что делать?В
AV
size_of::<dyn Tr> == size_of::<dyn Tr>r
swap_unsized<T: !Sized>, но такого нет, насколько я вижу по доке стдswap(&mut fat_ptr1, &mut fat_ptr2). Менять местами данные разного размера? Как? Паниковать если размеры разные?AV
swap(&mut fat_ptr1, &mut fat_ptr2). Менять местами данные разного размера? Как? Паниковать если размеры разные?AV
В
*mut TT: Sized и T: !Sized, и с каждым из них понятно, что делать?Box<T> (T: !Sized) ты через DerefMut получаешь &mut T. Чтобы поменять то что находится в Box'е тебе нужно изменить размер внутри толстого указателя в боксе, но ты ничего про бокс не знаешь, у тебя просто &mut TAV
?Sized вещиAV
Box<T> (T: !Sized) ты через DerefMut получаешь &mut T. Чтобы поменять то что находится в Box'е тебе нужно изменить размер внутри толстого указателя в боксе, но ты ничего про бокс не знаешь, у тебя просто &mut Tm