Microsoft KB Archive/103789

From BetaArchive Wiki

BUG: C2059 When Memory Model Used with Conversion Function


7.00 | 1.00 1.50 MS-DOS | WINDOWS kbtool kbbuglist ---------------------------------------------------------------------- The information in this article applies to: - The Microsoft C/C++ Compiler (CL.EXE), included with: - Microsoft C/C++ for MS-DOS, versions 7.0 - Microsoft Visual C++ for Windows, versions 1.0 and 1.5 ---------------------------------------------------------------------- SYMPTOMS ======== The Microsoft C/C++ Compiler versions 7.0, 8.0, and 8.0c incorrectly generates errors when a memory model specifier is used in the return type of a user-defined conversion function. For example, the compiler generates the following errors with the sample code provided below: file.cpp(8) : error C2059: syntax error : '*' file.cpp(8) : error C2238: unexpected token[s] preceding ';' RESOLUTION ========== Create a typedef for the conversion type and use the typedef in the conversion function definition. For example: typedef const char __far* NEWTYPE; operator NEWTYPE () const; STATUS ====== Microsoft has confirmed this to be a bug in the products listed above. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available. MORE INFORMATION ================ Sample Code ----------- // Compile options needed: /c class ClassName { public: operator const char __far* () const; }; Additional reference words: 1.00 1.50 7.00 8.00 8.00c KBCategory: kbtool kbbuglist KBSubcategory: CPPIss

Keywords : kb16bitonly
Issue type : kbbug
Technology : kbVCsearch kbAudDeveloper kbCVCComp

Last Reviewed: May 5, 2001
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.