title: Too many arguments for function call operator overload
body: <p>I'm attempting to overload the <code>() operator</code> to accept a <code>long</code>, that code is below.</p>
  
  <pre><code>struct print{
      void operator()(long x){
          printf("Number: %d\n",x);
      }
  };
  </code></pre>
  
  <p>However when I write this:</p>
  
  <pre><code>print p();
  long l = 10;
  p(l);
  </code></pre>
  
  <p>The compiler yells at me saying "error : too many arguments in function call" on the line that corresponds to <code>p(l);</code></p>
  
  <p>Why isn't this working, did I overload the <code>() operator</code> correctly?</p>