ID: Q103789
7.00 | 1.00 1.50 MS-DOS | WINDOWS kbtool kbbuglist
The information in this article applies to:
- Microsoft C/C++ for MS-DOS, versions 7.0
- Microsoft Visual C++ for Windows, versions 1.0 and 1.5
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 ';'
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;
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.
// 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
Last Reviewed: July 23, 1997