title: How come pointer to a function be called without dereferencing?
body: <p>I have a weird typedef statement in a C++ program, generated by Py++.</p>
  
  <pre><code>double radius(int);  // function to be wrapped
  typedef double (*radius_function_type)(int);    
  bp::def("radius", radius_function_type(&amp;radius));   // bp::def is a function for wrapping
  </code></pre>
  
  <p>What I figured out so far is that the above typedef statemnt is not of the type, most of us are familiar with,</p>
  
  <pre><code>typedef complex_type simple_alias;
  </code></pre>
  
  <p>Rather it is a way to declare pointer to a function which takes int as argument and returns double (same as the prototype). So my question now is that, how come pointer to a function <strong>(without dereferencing)</strong> be <strong>called</strong> with address of a function as an argument? This also doesn't match with the prototype. Somebody please explain!</p>