Por que "limite de tempo de vida explícito obrigatório" para Box <T> em struct?
Nota do editor: este código não produz mais o mesmo erro apósRFC 599 foi implementado, mas os conceitos discutidos nas respostas ainda são válidos.
Estou tentando compilar este código:
trait A {
fn f(&self);
}
struct S {
a: Box<A>,
}
e estou recebendo este erro:
a.rs:6:13: 6:14 error: explicit lifetime bound required
a.rs:6 a: Box<A>,
eu queroS.a
possuir uma instância deA
e não veja como essa vida útil é apropriada aqui. O que preciso fazer para tornar o compilador feliz?
Minha versão Rust:
rustc --version
rustc 0.12.0-pre-nightly (79a5448f4 2014-09-13 20:36:02 +0000)