Article: Q216977
Product(s): Microsoft C Compiler
Version(s): 6.0
Operating System(s):
Keyword(s): kbCompiler kbCPPonly kbVC600bug kbVC600fix
Last Modified: 08-MAY-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++, 32-bit Enterprise Edition, version 6.0
- Microsoft Visual C++, 32-bit Professional Edition, version 6.0
- Microsoft Visual C++, 32-bit Learning Edition, version 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
When you compile a template class that contains a data member that is an array
of a second template class, and the second class contains a data member that is
an array, and the size of both arrays is dependent on a template parameter, you
may receive the following error:
error C2233: '<Unknown>' : arrays of objects containing zero-size
arrays are illegal
RESOLUTION
==========
Use a pointer instead of an array. Allocate the space for the array in the
constructor, and deallocate the space for the array in the destructor.
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article.
This bug has been fixed in Microsoft Visual Studio 6.0 Service Pack 5 (SP5).
To download service pack 5, see the Visual Studio Product Updates page on the
following Microsoft Web site at:
http://support.microsoft.com/support/servicepacks/VS/6.0/default.asp?sd=msdn
MORE INFORMATION
================
Steps to Reproduce Behavior
---------------------------
template <int k>
class A
{
char x[k];
};
template <int h, int j>
class B
{
A<h> y[j];
};
Workaround
----------
template <int k>
class A
{
char *x;
A() {
x = new char[k];
}
~A() {
delete[] x;
}
};
template <int h, int j>
class B
{
A<h> y[j];
};
Additional query words:
======================================================================
Keywords : kbCompiler kbCPPonly kbVC600bug kbVC600fix
Technology : kbVCsearch kbAudDeveloper kbVC600 kbVC32bitSearch
Version : :6.0
Issue type : kbbug
Solution Type : kbfix
=============================================================================