Re: Bug in the objective-c++ compiler?
Re: Bug in the objective-c++ compiler?
- Subject: Re: Bug in the objective-c++ compiler?
- From: Marc Parizeau <email@hidden>
- Date: Wed, 15 Jun 2005 17:27:39 -0400
On 15-Jun-05, at 17:13, Scott Thompson wrote:
For the following simple C++ code (nothing else) and using Xcode
2.1 with gcc4:
namespace Toto {
enum Protocol {eOther};
Protocol getProtocol(void) {return eOther;}
}
Can anyone tell me why I'm getting the following error message
with the objective-c++ compiler:
main.mm:3: error: 'Toto::Protocol' referred to as 'struct'
main.mm:2: error: 'Toto::Protocol' has a previous declaration here
It appears as if there is a predefined "struct Protocol" in
objective-c, and that the objective-c++ compiler is confusing it
with Toto::Protocol wich is an enum type.
If I replace the word "Protocol" by anything else, the error
message disappears. Also, if I compile with gcc3.3 instead of
gcc4, there is not problem.
Is "Protocol" a new reserved keyword in objective-c?
Many thanks in advance,
FWIW, if I copy your text into a new project and rename the file
to "test.cpp" I don't receive a message from this code.
Of course, the code is valid in cpp. But copy it in a file called
test.mm (or force the compiler to use objective-c++ mode) and you
will get the error messages. If you look above (in my error
messages), you will see that the error occured in a file called
main.mm.
Cheers!
Not that you should have to write the code this way, but try this:
namespace Toto {
typedef enum tagProtocol { eOther } Protocol;
Protocol getProtocol(void) {return eOther;}
}
Ok, thanks for the suggestion, I may use it to bypass this bug
without changing the interface of my lib! So in essence the bug is
not about a predefined "Protocol" struct. It seems somehow related to
the use of the name "Protocol" as an enum name?
Thanks again!
Scott
--
MP
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden