Article ID: 149285
Article Last Modified on 7/5/2005
APPLIES TO
- Microsoft Visual C++ 4.0 Professional Edition
- Microsoft Visual C++ 4.1 Subscription
- Microsoft Visual C++ 4.2 Professional Edition
- Microsoft Visual C++ 4.2 Enterprise Edition
- Microsoft Visual C++ 5.0 Learning Edition
- Microsoft Visual C++ 5.0 Learning Edition
This article was previously published under Q149285
SYMPTOMS
When you initialize an array of a user-defined type using an include file (see the example in this article), the compiler generates this error:
RESOLUTION
There are two workarounds as described below.
- Add a comma after the last element in the include file. -or-
- Compile the .cpp file with the /P compiler option. This generates a file with a .i extension using the same base name as the .cpp file. Rename the file so that it has a .cpp extension, and compile it, or simply compile the .i file using the /Tp compiler option.
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 Visual C++ version 5.0.
MORE INFORMATION
Sample Code
.cpp File --------- // To reproduce the error, compile options needed: none // Define WORKAROUND to use workaround #1 struct CMemTblMgr { CMemTblMgr(int); ~CMemTblMgr(void); }; CMemTblMgr sm_mgrLst[] = { #include "CMEMTABL.INC" }; Cmemtabl.inc File ----------------- #ifndef WORKAROUND CMemTblMgr(1), CMemTblMgr(2) #else CMemTblMgr(1), CMemTblMgr(2), #endif
Additional query words: kbVC400bug 10.00 10.10 10.20
Keywords: kbbug kbfix kbvc500fix kbcpponly kbcompiler KB149285