Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ).