mem::transmute::<Box<Task + Send + 'scope>,
Box<Task + Send + 'static>>(Box::new(job))
};
удалится ли то, что внутри task а при выходе из скопа ?
На конкретно этот вопрос ответ "да, все равно удалится". Box никуда не делся, просто поменялся хранимый им тип. (Ну и новый тип совместим со старым).
Внутренний лайфтайм не будет влиять никак на удаление. Т.е. можешь считать что там нет трансмьюта. Он нужен только чтоб удовлетворить компилятор и/или внешнюю либу которая требует статик лайфтайм. При неправильном использовании может вызвать use-after-free. Но если все удаляется когда надо, то не страшно
Обсуждают сегодня