Narrowing conversion при касте из int в char
Имеется следующий код:
enum class Name{
A = 0b001,
B = 0b010,
C = 0b011,
// И так далее
};
Name n = Name::A;
std::string name{(char) 64 + static_cast<char>(n)};
Данная конструкция работает - в строку записывается символ, равный маленькой версии символа из енума. Но выводится warning:
narrowing conversion ... from 'int' to 'char'
Кроме того, не хотелось бы использовать c-style cast, но без него в строку записывается не символ из ascii, а число.
Подскажите, как сделать данное преобразование без c-style cast-а и без warning-ов?
Источник: Stack Overflow на русском