----- Forwarded message from [EMAIL PROTECTED] ----- Date: Thu, 26 Apr 2007 00:37:14 -0700 (PDT) From: Gennaro Prota <[EMAIL PROTECTED]> Reply-To: Gennaro Prota <[EMAIL PROTECTED]> Subject: Enums and gcc's long long To: Gabriel Dos Reis <[EMAIL PROTECTED]>
Hi Gabriel and sorry if this is sort of spam. I should have posted this to the relevant list but I have some news server problems. Perhaps you can forward it? (Perhaps it's already in Bugzilla, or it isn't a bug at all) // compiled with gcc version 3.4.2 (mingw-special) // g++ -Wall -ansi -pedantic-error EnumSign.cpp // #include <ostream> #include <iostream> enum E { a = -1, x = 0xFFFFFFFF }; void f( signed ) { std::cout << "signed" << std::endl; } void f( unsigned ) { std::cout << "unsigned" << std::endl; } int main() { E e; f( e ); } Output: $ g++ -Wall -ansi -pedantic-error EnumSign.cpp EnumSign.cpp: In function `int main()': EnumSign.cpp:19: error: call of overloaded `f(E&)' is ambiguous EnumSign.cpp:7: note: candidates are: void f(int) EnumSign.cpp:12: note: void f(unsigned int) Given that I used -pedantic-error, the compiler shouldn't use long long as underlying type of the enum (as it seems to do) and flag the enumerator declaration as ill-formed. Am I missing anything? Thanks. -- Gennaro Prota https://sourceforge.net/projects/breeze/ __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ----- End forwarded message -----