title: void(); void with empty brackets
body: <p>Why doesn't <code>void();</code> here result in a compilation error?</p>
  
  <p>How is this interpreted by the compiler based on the standard?</p>
  
  <pre><code>class X;
  
  int main()
  {
      //void(int);    error: expected primary-expression before 'void'
      //void(void);   error: expected primary-expression before 'void'
      //void;         error: declaration does not declare anything [-fpermissive]
      //X();          error: invalid use of incomplete type 'class X'
      void(0);    // functional cast expression to void?
      void();     // ???
  }
  </code></pre>