typedef ci_string basic_string<char, ci_char_traits<char>, allocator<char> >;
typedef ci_wstring basic_string<wchar_t, ci_char_traits<wchar_t>, allocator<wchar_t> >;
typedef ci_tstring basic_string<tchar_t, ci_char_traits<tchar_t>, allocator<tchar_t> >;

tchar_t is an invention of mine, defined equivalent to TCHAR or _TCHAR. But I like the name more.