В стандарте C ++ отсутствует поддержка универсального (переменной ширины) символа, такого как TCHAR
. C ++ имеет wchar_t
, но кодировка не гарантируется. C ++ 1x значительно улучшит ситуацию, когда у нас будут char16_t
и char32_t
, а также литералы UTF- {8,16,32}.
Лично я не большой поклонник общих символов, потому что они приводят к некоторым неприятным проблемам (например, преобразованию) и, более того, если вы используете тип (например, TCHAR
), максимальная ширина которого может быть 8 Вы можете также кодировать с char
. Если вам действительно нужна обратная совместимость, просто используйте UTF-8; он специально разработан для строгого надмножества ASCII. Возможно, вам придется использовать API преобразования (особенно в Windows, которая по какой-то странной причине является UTF-16), но, по крайней мере, она будет согласованной.
РЕДАКТИРОВАТЬ: Чтобы фактически ответить на первоначальный вопрос, другие платформы, как правило, не имеют такой конструкции. Вам придется определить свой TCHAR на этой платформе или использовать библиотеку, которая ее предоставляет (но, как вы, несомненно, сможете догадаться, я не большой поклонник этой концепции в библиотеках).