Почему значение перечисления с фиксированным базовым типом 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);
}