Почему значение перечисления с фиксированным базовым типом char разрешается в fct (int) вместо fct (char)?

Эта проблема возникла при ответеэтот вопрос о разрешении перегрузки с перечислениями.

Пока дело заlong long определенно была ошибка в MSVC2012NovCTP (согласно стандартному тексту и тесту с gcc 4.7.1), я не могу понять, почему происходит следующее поведение:

#include 

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);
}

Ответы на вопрос(2)

Ваш ответ на вопрос