Microsoft KB Archive/243451

= C++ standard noncompliance issues with Visual C++ .NET =

Article ID: 243451

Article Last Modified on 10/21/2005

-

APPLIES TO


 * Microsoft Visual C++ 6.0 Enterprise Edition
 * Microsoft Visual C++ 6.0 Professional Edition
 * Microsoft Visual C++ 6.0 Standard Edition
 * Microsoft Visual C++ .NET 2002 Standard Edition

-



This article was previously published under Q243451



SUMMARY
This article gives a list of the known standard noncompliance issues with Visual C++ 6.0.



MORE INFORMATION
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 FIX: C2555 On virtual functions with covariant return types

 Partial ordering of template functions (14.5.5.2) not supported.

240869 BUG: C2667 and C2668 on partial ordering of function templates

 Koenig lookup (3.4.2) not fully supported.

242190 BUG: Full Koenig lookup works only for operators

 Template arguments must be deduced for function templates (14.8.1).

240871 BUG: Explicitly specified template functions not overloaded correctly

 Class template partial specializations (14.5.4) not supported.

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 BUG: C2059 error on out-of-class definition of member templates

 Template Template-parameters (14.1) not supported.

241940 BUG: C2954 error when using class template as template-parameter

</li> Export keyword for templates (14, 14.7.2, 14.7.3) not supported.

239436 You receive a LNK2001 error message when you use the template member functions

</li> Function Try Block Syntax (15) not supported.

241706 BUG: Compiler error C2143 on function-try-block syntax

</li> uncaught_exception (18.6.4) not implemented.

242192 BUG: The uncaught_exception C Run-Time function always returns false

</li> In place initialization static const members (9.2) not supported.

241569 Error C2258 and error C2252 occur if you try to perform in-place initialization of static const integral member data in Visual C++

</li> C library functions not in standard namespace (17.3.1.2).

243444 You receive a C2653 or C2039 error message when you try to reference a function from the STD C++ library

</li> Scope of variable declared in the for loop initialization (6.5.3) not as per standard.

167748 PRB: Variable scope in for-statement extends beyond loop

</li>  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

</li> 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</li></ul>

<div class="references_section">