Узкие строковые литералы определены как const char
, и нет строковых литералов без знака [1], поэтому вам придется приводить:
ustring s = reinterpret_cast<const unsigned char*>("Hello, UTF-8");
Конечно, вы можете поместить эту длинную вещьво встроенную функцию:
inline const unsigned char *uc_str(const char *s){
return reinterpret_cast<const unsigned char*>(s);
}
ustring s = uc_str("Hello, UTF-8");
Или вы можете просто использовать basic_string<char>
и получать от этого 99,9% времени, когда вы работаете с UTF-8.
[1]Если char
не подписано, но зависит от реализации, бла, бла.