BUG: You may receive multiple errors when you compile the Standard C++ Library headers with the /Za switch in Visual C++ (168934)
The information in this article applies to:
- The Standard C++ Library, when used with:
- Microsoft Visual C++, 32-bit Enterprise Edition 5.0
- Microsoft Visual C++, 32-bit Enterprise Edition 6.0
- Microsoft Visual C++, 32-bit Professional Edition 5.0
- Microsoft Visual C++, 32-bit Professional Edition 6.0
- Microsoft Visual C++, 32-bit Learning Edition 6.0
This article was previously published under Q168934 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.
This problem was corrected in Microsoft Visual C++ .NET.
Modification Type: | Major | Last Reviewed: | 9/2/2005 |
---|
Keywords: | kberrmsg kbtshoot kbBug kbCompiler kbCPPonly kbfix kbLangCPP kbNoUpdate KB168934 kbAudITPRO |
---|
|