FIX: C2664 When Converting Type Defined Array to Const Array (122443)
The information in this article applies to:
- Microsoft Visual C++, 32-bit Professional Edition 2.0
This article was previously published under Q122443 SYMPTOMS
The C/C++ compiler incorrectly generates a C2664 error when attempting to
implicitly convert from a typedef non-constant array type to a constant
array type. The compiler reports an error that indicates a conversion from
a constant array type to a non-constant array type. The following error
message is reported by the compiler if a non-constant integer array type is
used:
test.cpp(#): error C2664: 'copy' : cannot convert parameter 1 from
'const int[2]' to 'int[2]'
The # is the line number where the error occured.
RESOLUTION
To work around the problem, typedef a constant array type instead of using
the keyword 'const' together with the typedef non-constant array type. An
example is shown in the Sample Code section in this article.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. This bug was corrected in Microsoft
Visual C++, 32-bit Edition, version 4.0.
Modification Type: | Minor | Last Reviewed: | 7/5/2005 |
---|
Keywords: | kbbug kbfix KB122443 |
---|
|