编译异常报在系统头文件里是咋回事

编译错误报在系统头文件里是怎么回事?
VS2008 + WINDOWS XP ;
错误:
Error 2 error C2061: syntax error : identifier 'T' c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h 963


代码:
C/C++ code

extern "C++" // templates cannot be declared to have 'C' linkage
template <typename T, size_t N>//这行错误
char (*RtlpNumberOf( UNALIGNED T (&)[N] ))[N];

#define RTL_NUMBER_OF_V2(A) (sizeof(*RtlpNumberOf(A)))




------解决方案--------------------
你用的是sgi stl库么?
如果是有个类似的链接:http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/1ff81c3a-bfb8-42bd-8dda-5de202e2753f/