Faire enum cast en int

J'ai un problème sur ce code:

template <typename T>
void dosth(T& value,const T& default_value)
{
   if (condition)
       value = 10;
   else
       value = default_value;
}

Quand je l'appelle avec

enum {
    SITUATION1,
    STIUATION2
};

int k;
dosth(k,SITUATION1);

le compilateur g++ 4.5) dit

no matching function for call to 'dosth(int&,)'

Pourquoi ne pas le compilateur automatiquement jeté l'enum dans un int?

double possible de l'Absence de correspondance appel à la fonction <anonyme enum>
Je ne pense pas que c'est un doublon, mais je pense que c'est une partie de la réponse.
En fait oui, je pense que vous avez raison. J'ai raté le facteur de conversion à l'origine.

OriginalL'auteur xis | 2011-08-31