В C ++ нельзя добавлять что-либо к строкам, кроме символов и других строк. Не существует неявного преобразования из int
(или чего-либо еще) в строку. Так устроен строковый тип.
Вместо этого вы используете строковые потоки:
std::wstring listcode(wchar_t arg)
{
std::wostringstream oss;
oss << static_cast<int>(arg);
oss << L": ";
oss << arg;
return oss.str();
}
На практике, однако, при преобразовании в строки в C ++ лучше иметь функции, записывающие в поток, чем возвращающие строку:
void listcode(std::wostream os, wchar_t arg)
{
os << static_cast<int>(arg);
os << L": ";
os << arg;
}
Таким образом, если вы хотите что-то вывести на консоль или в файл, вы можете напрямую передать std::cout
или поток файла, а если вам нужна строка, вы просто передаете поток строки.