title: What does this typedef statement mean?
body: <p>In a C++ reference page they provide some typedef examples and I'm trying to understand what they mean.</p>
  
  <pre><code>// simple typedef
  typedef unsigned long mylong;
  
  
  // more complicated typedef
  typedef int int_t, *intp_t, (&amp;fp)(int, mylong), arr_t[10];
  </code></pre>
  
  <p>So the simple typedef (the first declaration) I understand.</p>
  
  <p>But what are they declaring with the second one (repeated below)?</p>
  
  <pre><code>typedef int int_t, *intp_t, (&amp;fp)(int, ulong), arr_t[10];
  </code></pre>
  
  <p>Particularly what does <code>(&amp;fp)(int, mylong)</code> mean?</p>