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)