title: Compiler requires me to add space before equal sign for default function parameter
body: <p>If I write:</p>
  
  <pre><code>void compute(char*, char*=0) { // no space before =
  }
  
  int main()
  {
      compute(0);
  }
  </code></pre>
  
  <p>gcc <a href="http://coliru.stacked-crooked.com/a/849860ffb4eb8b71" rel="nofollow">outputs</a> :</p>
  
  <pre><code>main.cpp:1:25: error: expected ')'
  void compute(char*, char*=0) {
                          ^
  main.cpp:1:13: note: to match this '('
  void compute(char*, char*=0) {
              ^
  main.cpp:6:5: error: no matching function for call to 'compute'
      compute(0);
      ^~~~~~~
  main.cpp:1:6: note: candidate function not viable: requires 2 arguments, but 1 was provided
  void compute(char*, char*=0) {
       ^
  2 errors generated.
  </code></pre>
  
  <p>if I add space befor <code>=</code>: <code>char* =0</code> then its all OK.</p>
  
  <p>Is this another example of most vexing parse problem?</p>