Я изменяю чужой код, который широко использует TCHAR.Лучше ли просто использовать std :: wstring в моем коде?wstring должен быть эквивалентен TString на платформах widechar, поэтому я не вижу проблемы.Смысл в том, что проще использовать необработанную строку wstring, чем поддерживать TCHAR ... например, используя boost: wformat.
Какой стиль будет более понятен следующему сопровождающему?Я потратил несколько часов, пытаясь понять тонкости строк. Кажется, использование wstring обрезает половину всего, что вам нужно понять.
typedef std::basic_string<TCHAR> TString; //on winxp, TCHAR resolves to wchar_t
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
... единственное отличие - распределитель.
В маловероятном случае, когда ваша программа окажется на компьютере с Window 9x, все еще есть уровень API, который может преобразовывать ваши строки UTF-16 в 8-битные символы.Нет смысла использовать TCHAR для разработки нового кода. источник