Rust-Funktion hat keine statische Lebensdauer?

Ich versuche, diesen einfachen Code kompilieren zu lassen:

fn dox(x: u8) -> u8 { x*2 }

fn main() {
    let cb: &'static (Fn(u8) -> u8) = &dox;
}

Aber es schlägt fehl mit Rust 1.9:

x.rs:4:40: 4:43 error: borrowed value does not live long enough
x.rs:4     let cb: &'static (Fn(u8) -> u8) = &dox;
                                              ^~~
note: reference must be valid for the static lifetime...
x.rs:4:44: 5:2 note: ...but borrowed value is only valid for the block suffix following statement 0 at 4:43
x.rs:4     let cb: &'static (Fn(u8) -> u8) = &dox;
x.rs:5 }
error: aborting due to previous error

Wie ist es möglich, dass eine freie Funktion keine statische Lebensdauer hat? Wie könnte dieser Code unsicher sein?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage