Беззнаковый string

В С++ можно создать беззнаковый тип char, который может хранить числа от 0 до 255. Я хочу использовать string похожим образом, т.е чтобы символы в нем хранились не как char, а как unsigned char. Как мне это сделать? Т.е. каким образом я могу указать string хранить беззнаковые символы?

    #include <iostream>
using namespace std;
int main() {
    unsigned char c = 240;
    string s;
    s = c;
    cout << int (c);// выводит 240
    cout << endl;
    cout << int(s[0]);//выводит -16, а я хочу 240
}

Ответы (1 шт):

Автор решения: Harry

Используйте что-то вроде

using ustring = basic_string<unsigned char>;

ustring u;
unsigned char c = 240;
u = c;
cout << int (c);// выводит 240
cout << endl;
cout << int(u[0]);//выводит -16, а я хочу 240

Только при этом будет сложно в смысле работы с обычными строками - те же конструкторы будут требовать unsigned char *, не будет оператора вывода << и так далее...

→ Ссылка