MB
Size: a a a
OA
AZ
AZ
AZ
r
trait BoxedClone {
fn clonse(&self) -> Box<Self>
}
trait BoxedClone {
fn clonse(&self) -> Box<dyn BoxedClone>
}impl BoxedClone for Foo вместо Self будет подставлен Foo, а не dyn BoxedCloneAZ
impl BoxedClone for Foo вместо Self будет подставлен Foo, а не dyn BoxedCloneOA
А⚙
r
Box<Type> where Type: Sized и Box<dyn Trait> разные размеры. Не думаю, что можно реализовать функцию возвращающую тип, содержащий Box<Self>, без ограничения Self: Sized, что делает невозможным её использование через динамическую диспетчеризациюAZ
r
Box<Box<Type>> всегда имеет один и тот же размер, но вернуть его всё-равно нельзя.2 | fn clonedyn(&self) -> Box<Box<Self>>;
| -------- method `clonedyn` references the `Self` type in its parameters or return type
r
dyn Traitp
p

AZ
DF
DF
OA