Microsoft KB Archive/103789

{|
 * width="100%"|

BUG: C2059 When Memory Model Used with Conversion Function

 * }

Q103789

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