С++ 11 принес нам префикс u8 для литералов UTF-8, и я подумал, что это было круто несколько лет назад, и наполнил мой код такими вещами:
std::string myString = u8"●";
Это все хорошо и хорошо, но проблема возникает в С++ 20, он, кажется, больше не компилируется, потому что u8 создает char8_t *, и это несовместимо с std :: string, которая просто использует char.
Должен ли я создавать новую строку utf8? Какой последовательный и правильный способ сделать это в мире С++ 20, где у нас есть более явные типы, которые не соответствуют стандартному std :: string?