FIX: Nested Macros Cause Errors C2065 and C2064 (164947)
The information in this article applies to:
- Microsoft Visual C++, 32-bit Editions 4.0
- Microsoft Visual C++, 32-bit Editions 4.1
This article was previously published under Q164947 SYMPTOMS
A nested macro may cause errors similar to the following:
error C2065: 'MACRO_B' : undeclared identifier
error C2064: term does not evaluate to a function
error C2143: syntax error : missing ';' before '}'
CAUSE
The second macro is not being expanded correctly. A preprocessed file
for the following sample shows that MACRO_B is not expanded:
{ MACRO_B ("Hello world.\n") };
It should expand to:
{ { printf("Hello world.\n"); } };
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++ 32-bit Edition, versions 4.2.
Modification Type: | Minor | Last Reviewed: | 7/5/2005 |
---|
Keywords: | kbbug kbCodeGen kbCompiler kbfix KB164947 |
---|
|