title: Compiling with operator() under GCC 3.3 Problem in Boost
body: <p>I have the following snippet:</p>
  
  <pre><code>#include &lt;boost/random/lognormal_distribution.hpp&gt;
  #include &lt;boost/random/lagged_fibonacci.hpp&gt; 
  
  int main() {
  
    const double mean  = 0.0;
    const double sigma = 1.0;
  
    boost::lognormal_distribution&lt;double&gt; lognorm_dist(mean, sigma);
    boost::lagged_fibonacci44497 engine;
  
    // the following line give error in GCC 3.3
    const double value = lognorm_dist.operator() &lt;boost::lagged_fibonacci44497&gt;((engine)); 
  
  }
  </code></pre>
  
  <p>It compile fine under </p>
  
  <pre><code>i686-apple-darwin9-g++-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465)
  </code></pre>
  
  <p>But under:</p>
  
  <pre><code>g++ (GCC) 3.3.3 (SuSE Linux)
  </code></pre>
  
  <p>It gave the following error:</p>
  
  <pre><code>Mycode.cc:10:error: `operator()' not defined
  </code></pre>
  
  <p>How can I fix the problem?</p>