Known Limitations ================= The Intel(R) Premier Support website contains more up to date information on errata and the availability of new versions of the compiler. This initial product version of the Intel(R) C++ Compiler for 64 bit applications has the following limitations: - All the optimizations enabled for C have not been enabled for C++ at this time. The following are known defects in the Intel(R) C++ Compiler, which might be fixed in a future version. This list is divided into defects that can affect both C and C++, and defects that affect only C++ programs. Defects Affecting Only C++ Programs =================================== The Intel(R) C++ compiler conforms to the C++ standard. The Intel(R) C++ Compiler, at this time, does not fully support the legacy . If you need support for the legacy , additional information is available on the Intel(R) Premier Support web site. Please see the main release notes for instructions on how to obtain a support account. Based pointers are not fully supported in C++ code. Although they are accepted (i.e. do not result in an error), they are not taken into account in name mangling, for example. Defects Affecting C and C++ Programs ==================================== Using -quiet in ecc.cfg to suppress Warning message -------------------------------------------------- If ECCCFG environment variable is not defined and set to ecc.cfg (full path), invoking 'ecc' (old driver name) will not process ecc.cfg and continue to emit the Warning message about using old driver names. The Intel(R) C++ Compiler does not allow initialization of an unsigned short array with a wide character literal string when the string is cast to unsigned short *. The following code fragment fails to compile with the Intel(R) C++ Compiler for this reason: struct { int buf[32]; } s = { (unsigned short) L"hello" }; A workaround for this problem is to remove the cast to unsigned short *, because it is unnecessary. The same problem affects unsigned char arrays initialized with non-wide string literals. The Intel(R) C++ Compiler issues an error if an identifier with a base type is redeclared using a different base type of the same size. As a result, the following code fragment fails to compile with the Intel(R) C++ Compiler: int a; long a; float a; The Intel(R) C++ Compiler generates an error for a character array initialization containing a mixture of characters and strings such as the following: char a[5] = {'a', "bcd"}; Limitations and Tool Notes ========================== Use of Friend Injection: Not Recommended Sometimes a class is a member of a namespace , and contains a friend declaration of a function not already declared. In such cases, the Intel(R) C++ Compiler injects the function declaration into the namespace containing the class, even if the class definition is not lexically within the namespace definition. Function Declaration in Function Scope of Function Defined in a Namespace In accordance with the C++ language specification, if a function declaration is encountered within a function definition, the function referenced is taken to be another member of the namespace of the containing function, whether or not the containing function definition is lexically within a namespace definition.