There are quite a few differences between msvc and the other compilers. For instance:<p><pre><code>  #define a(x,y) x+y
  void f(int i)
  {
      a(i,+);
  }
</code></pre>
will compile without errors with cl but not with any other compiler.