title: VS2008 C++ "interface" as a parameter name fails to compile
body: <p>As the title says, I'm getting a compiler error in a VS2008 C++ program.  I'm not sure how better to describe my problem than in code.  The following compiles unless I uncomment the TEST line.</p>
  
  <pre><code>#include &lt;windows.h&gt;
  #include &lt;iostream&gt;
  using namespace std;
  
  //#define TEST //&lt;-- uncomment for error
  #ifdef TEST
  void test(void* interface)
  {
      return;
  }
  #endif
  int main()
  {
      cout &lt;&lt; "Hello World" &lt;&lt; endl;
      system("PAUSE");
      return(0);
  }
  </code></pre>
  
  <p>When uncommented I get the following errors:</p>
  
  <pre><code>1&gt;main.cpp(7) : error C2332: 'struct' : missing tag name
  1&gt;main.cpp(7) : error C2144: syntax error : '&lt;unnamed-tag&gt;' should be preceded by ')'
  1&gt;main.cpp(7) : error C2144: syntax error : '&lt;unnamed-tag&gt;' should be preceded by ';'
  1&gt;main.cpp(7) : error C2059: syntax error : ')'
  1&gt;main.cpp(8) : warning C4094: untagged 'struct' declared no symbols
  1&gt;main.cpp(8) : error C2143: syntax error : missing ';' before '{'
  1&gt;main.cpp(8) : error C2447: '{' : missing function header (old-style formal list?)
  </code></pre>
  
  <p>This is unmanaged code, so I'm not sure what the issue with the word interface is.  Is there any way to get this code to compile as is, or do I have to change every instance of the term interface to something else?</p>
  
  <p>Thanks!</p>