title: Weird compile error dealing with Winnt.h
body: <p>When trying to compile a file that include winnt.h via windows.h, I get the following error:</p>
  
  <pre>MyGl.cpp
  ..\microsoft sdks\windows\v6.0a\include\winnt.h(964) : error C2988: unrecognizable template declaration/definition
  ..\microsoft sdks\windows\v6.0a\include\winnt.h(964) : error C2059: syntax error : '&'
  </pre>
  
  <p>They point to the following lines in Winnt.h</p>
  
  <pre><code>extern "C++" // templates cannot be declared to have 'C' linkage
  template &lt;typename T, size_t N&gt;
  char (*RtlpNumberOf( UNALIGNED T (&amp;)[N] ))[N];
  
  #define RTL_NUMBER_OF_V2(A) (sizeof(*RtlpNumberOf(A)))
  </code></pre>
  
  <p>Any ideas for what's going on?</p>
  
  <p>My compiler:</p>
  
  <pre>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
  Copyright (C) Microsoft Corporation.  All rights reserved.</pre>