title: Boost function signature
body: <p>Can someone tell me what's going on with this bit of code using boost's normal distribution?</p>
  
  <pre><code>boost::mt19937 rng; // A random number generator
  boost::normal_distribution&lt;&gt; nd(3.0, 1.0); // mean 3, sigma 1
  // Attach the distribution to the random number generator to get a function
  // that returns normally distributed variables.
  boost::variate_generator&lt;boost::mt19937&amp;,boost::normal_distribution&lt;&gt; &gt; var_nor(rng, nd);
  // Use it. But why is function signature different?
  double x = var_nor();
  </code></pre>
  
  <p>I'm confused as to what's happening with var_nor with its two function signature.
  Thanks
  Pete</p>