¿Por qué un valor de una enumeración con un tipo de carácter subyacente fijo de char se resuelve en fct (int) en lugar de fct (char)?

Este problema surgió al responder.esta pregunta sobre resolución de sobrecarga con enumeraciones.

Si bien el caso delong long fue definitivamente un error en MSVC2012NovCTP (de acuerdo con el texto estándar y una prueba con gcc 4.7.1), no puedo entender por qué ocurre el siguiente comportamiento:

#include <iostream>

enum charEnum : char { A = 'A' };

void fct(char)      { std::cout << "fct(char)"      << std::endl; }
void fct(int)       { std::cout << "fct(int)"       << std::endl; }
void fct(long long) { std::cout << "fct(long long)" << std::endl; }

int main() 
{
    fct('A');
    fct(A);
}

Tanto MSVC2012NovCTP como gcc 4.7.1 están de acuerdo con esta salida:

fct (char)
fct (int)

No deberíaA ser convertido decharEnum achar? Por que esA siendo convertido aint?

EDITAR: clang se queja de que la llamada es ambigua, lo que concuerda con mi interpretación a continuación; Dicho esto, todavía lo encontraría mucho más intuitivo si solo se considerara como el tipo subyacente.

Dos extractos estándares relevantes son §7.2 / 9:

El valor de un enumerador o un objeto de un tipo de enumeración sin ámbito se convierte en un número entero mediante una promoción integral (4.5)

Y §4.5 / 4:

Un prvalue de un tipo de enumeración sin ámbito cuyo tipo subyacente es fijo (7.2) se puede convertir a un prvalue de su tipo subyacente. Además, si la promoción integral se puede aplicar a su tipo subyacente, un prvalor de un tipo de enumeración sin ámbito cuyo tipo subyacente se fije también se puede convertir a un prvalor del tipo subyacente promovido.

Asi quecharEnum se puede convertir achar, o cualquier promoción integral dechar, comoint.

Pero esto es vago para mí porque "puedo" no dice exactamente cuál será elegido realmente. En todo caso, esto debería ser ambiguo con esta redacción porque no se da preferencia entrechar o cualquiera de sus promociones. Si usted comentafct(int), entonces la llamadaes ambiguo. Por que esint ¿especial?

Lo único en lo que puedo pensar es que las promociones integrales se aplican recursivamente, pero nada de lo que veo lo encomienda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta