BUG: Multiple Errors Compiling Std C++ Library Headers with /Za

ID: Q168934


The information in this article applies to:
  • The Standard C++ Library, used with:
    • Microsoft Visual C++, 32-bit Editions, versions 5.0, 6.0


SYMPTOMS

If you use the /Za switch (Disable Language Extensions) when compiling the Standard C++ Library headers, it causes multiple compiler errors. For example:


   cl /Za /c /GX /Tp"iosfwd" 
Causes the following compiler errors:
iosfwd(132) : error C2906: C++ language change: to explicitly specialize class template 'char_traits' use the following syntax - template<> struct char_traits<unsigned short> ...

iosfwd(171) : error C2906: C++ language change: to explicitly specialize class template 'char_traits' use the following syntax - template<> struct char_traits<char> ...
Examples of other header files known to cause multiple compiler errors like C2838, C2146, and C2501 are: <utility>, <iterator>, <xstring>, <functional>, and <limits>.


RESOLUTION

Do not use the compiler option /Za (Disable Language Extensions) when compiling the Standard C++ Library headers.


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

Additional query words:

Keywords : kbtool kbCompiler kbCPPonly kbLangCPP kbVC kbVC500bug kbVC600bug STLIss
Version : winnt:5.0,6.0
Platform : winnt
Issue type : kbbug


Last Reviewed: May 18, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.