私はこの単純なコードをコンパイルしようとしています:錆機能には静的寿命がありませんか?
fn dox(x: u8) -> u8 { x*2 }
fn main() {
let cb: &'static (Fn(u8) -> u8) = &dox;
}
をしかし、それは錆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
それは自由な関数は、静的な寿命を持っていない可能性がありどのように?どのようにこのコードは安全ではないでしょうか?