title: why function reference not live enough?
body: <p>I want to make optional reference to function,
  and try this:   </p>
  
  <pre><code>struct Foo {
      cb: Option&lt;&amp;'static Fn(u32)-&gt;u32&gt;,
  }
  
  fn f1(a: u32) -&gt; u32 { a }
  
  fn main() {
      let foo = Foo{cb: Some(&amp;f1)};
  }
  </code></pre>
  
  <p>but compiler report error <code>borrowed value does not live long enough</code>, so question:</p>
  
  <ol>
  <li>Why <code>f1</code> not live long enough?</li>
  <li>How should I fix this code?</li>
  </ol>