un bug de g++ ? les enum fortement typées : mais pas tout à fait x).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <iostream>
enum myshortenum : unsigned short
{
val1,
val2
};
void f_int_short(int i)
{
std::cout << "f*ck it's an int !" << i;
}
void f_int_short(unsigned short i)
{
std::cout << "cool it's an unsigned short !" << i;
}
int main()
{
myshortenum e = myshortenum::val1;
f_int_short(e);
} |
Voilà un code minimisé de ce qui risque de mener à ma calvitie prématurée à 4h du matin...
Selon le standard, quelle devrait être la sortie ?
Selon moi "cool it's an unsigned short !".
Selon g++4.7.2 il en est tout autrement... testé sous windows avec mingw32 et linux par Rachel sous 4.8 ;) (et aussi sous ideone pour faire bonne mesure, pas trouvé clang online malheureusement :( ).