Как я понимаю, Windows #defines TCHAR как правильный тип символа для вашего приложения на основе сборки - так что это wchar_t
в сборках UNICODE и char
в противном случае.
Из-за этого я подумал, будет ли std::basic_string<TCHAR>
предпочтительнее std::wstring
, так как первый теоретически будет соответствовать типу символа приложения, тогда как второй всегда будет широким.
Итак, мой вопрос по существу: был бы std::basic_string<TCHAR>
предпочтительнее std::wstring
в Windows? И есть ли какие-либо оговорки (например, неожиданное поведение или побочные эффекты) при использовании std::basic_string<TCHAR>
? Или, должен ли я просто использовать std::wstring
в Windows и забыть об этом?