This article gives a list of the known standard noncompliance issues with Visual C++ 6.0.
In the following list, the relevant standard section is given in parentheses. Where an article link is provided, please refer to the article for more information.
- Covariant return types (10.3.5) not supported.
240862
(http://support.microsoft.com/kb/240862/
)
FIX: C2555 On virtual functions with covariant return types
- Partial ordering of template functions (14.5.5.2) not supported.
240869
(http://support.microsoft.com/kb/240869/
)
BUG: C2667 and C2668 on partial ordering of function templates
- Koenig lookup (3.4.2) not fully supported.
242190
(http://support.microsoft.com/kb/242190/
)
BUG: Full Koenig lookup works only for operators
- Template arguments must be deduced for function templates (14.8.1).
240871
(http://support.microsoft.com/kb/240871/
)
BUG: Explicitly specified template functions not overloaded correctly
-
Class template partial specializations (14.5.4) not supported.
240866
(http://support.microsoft.com/kb/240866/
)
BUG: ERROR C2989 and C2988 on class template partial specializations
- Out-of-class-definition for member template classes and functions (14.5.2) not supported.
241949
(http://support.microsoft.com/kb/241949/
)
BUG: C2059 error on out-of-class definition of member templates
- Template Template-parameters (14.1) not supported.
241940
(http://support.microsoft.com/kb/241940/
)
BUG: C2954 error when using class template as template-parameter
- Export keyword for templates (14, 14.7.2, 14.7.3) not supported.
239436
(http://support.microsoft.com/kb/239436/
)
You receive a LNK2001 error message when you use the template member functions
- Function Try Block Syntax (15) not supported.
241706
(http://support.microsoft.com/kb/241706/
)
BUG: Compiler error C2143 on function-try-block syntax
- uncaught_exception() (18.6.4) not implemented.
242192
(http://support.microsoft.com/kb/242192/
)
BUG: The uncaught_exception C Run-Time function always returns false
- In place initialization static const members (9.2) not supported.
241569
(http://support.microsoft.com/kb/241569/
)
Error C2258 and error C2252 occur if you try to perform in-place initialization of static const integral member data in Visual C++
- C library functions not in standard namespace (17.3.1.2).
243444
(http://support.microsoft.com/kb/243444/
)
You receive a C2653 or C2039 error message when you try to reference a function from the STD C++ library
- Scope of variable declared in the for loop initialization (6.5.3) not as per standard.
167748
(http://support.microsoft.com/kb/167748/
)
PRB: Variable scope in for-statement extends beyond loop
- Function exception specifiers (15, 15.4) other than throw() are parsed but not used.
Example:
void f() throw(int); // parsed but not used
void g() throw(); // parsed and used
- Alternative operators like and ,and_eq, bit and etc are not implemented (2.11). But you can get the same behavior by including iso646.h
For more information, see the ANSI/ISO C++ Standard.