Как обрабатывать строки и wstring в одном проекте

Я пишу код, который использует строку, и код должен быть скомпилирован вместе с другими проектами. Некоторые из этих проектов используют Unicode, а некоторые другие используют многобайтовую строку.

Как написать мой код так, чтобы его можно было скомпилировать в обеих конфигурациях?

Например, я знаю, что TCHAR — это макрос, который расширяется до подходящего символа в зависимости от конфигурации. Есть ли что-то подобное для string/wstring?

Как лучше всего использовать string/wstring, когда важна переносимость?


person mans    schedule 18.12.2013    source источник
comment
TCHAR в наши дни ужасен, но присмотритесь к тому, что на самом деле представляет собой std::string.   -  person chris    schedule 18.12.2013
comment
Как обрабатывать строку — Гендель — это что-то (кто-то) другое. Слово, которое вы ищете, это ручка.   -  person    schedule 18.12.2013
comment
@chris: Как лучше всего? Должен ли я придерживаться Unicode? Везде поддерживается?   -  person mans    schedule 18.12.2013
comment
@mans, есть этот вопрос, есть utf8everywhere.org. Оглянитесь вокруг, и вы найдете несколько разных мнений, но вы должны хотя бы иметь некоторое представление.   -  person chris    schedule 18.12.2013
comment
@chris, что такое std:sring? Как я могу узнать больше о том, что внутри? Не могли бы вы уточнить?   -  person mans    schedule 18.12.2013
comment
@mans, я имел в виду ссылку, в частности таблицу определения типов , имея в виду, что TCHAR является тем или иным.   -  person chris    schedule 18.12.2013
comment
TCHAR — это Microsoft-изм. Все, что он делает, не является переносимым.   -  person Pete Becker    schedule 18.12.2013


Ответы (1)


Вы должны использовать std::wstring для хранения своих строк, а затем преобразовывать строки в то, что запрашивают библиотеки, которые вы используете, по мере необходимости.

person Caesar    schedule 18.12.2013