Warum ist für Box <T> in struct eine explizite Lebensdauergrenze erforderlich?

Anmerkung des Herausgebers: Dieser Code erzeugt nach @ nicht mehr denselben FehlRFC 599 wurde implementiert, aber die in den Antworten diskutierten Konzepte sind immer noch gültig.

Ich versuche diesen Code zu kompilieren:

trait A {
    fn f(&self);
}

struct S {
    a: Box<A>,
}

und ich erhalte diesen Fehler:

a.rs:6:13: 6:14 error: explicit lifetime bound required
a.rs:6     a: Box<A>,

Ich willS.a um eine Instanz von @ zu besitzA, und sehe nicht, wie diese Lebensdauer hier angemessen ist. Was muss ich tun, um den Compiler glücklich zu machen?

Meine Rust-Version:

rustc --version
rustc 0.12.0-pre-nightly (79a5448f4 2014-09-13 20:36:02 +0000)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage