#include <iostream>
#include <string>
#include <typeinfo>
using namespace std;

typedef std::basic_string<unsigned char> ustring;

int main() {
	ustring abc = reinterpret_cast<const unsigned char *>("abcd");
#define TYPE(X) cout << #X ": " << typeid(X).name() << endl;
	TYPE(char);
	TYPE(unsigned char);
	TYPE(abc[0]);
	
	
	return 0;
}