std :: wstring VS std :: string - PullRequest
       86

std :: wstring VS std :: string

695 голосов
/ 31 декабря 2008

Я не могу понять разницу между std::string и std::wstring. Я знаю, wstring поддерживает широкие символы, такие как символы Юникода. У меня есть следующие вопросы:

  1. Когда я должен использовать std::wstring сверх std::string?
  2. Может ли std::string содержать весь набор символов ASCII, включая специальные символы?
  3. Поддерживается ли std::wstring всеми популярными компиляторами C ++?
  4. Что такое " широкий символ "?

Ответы [ 12 ]

0 голосов
/ 11 июня 2009

Когда не следует использовать широкие символы?

Когда вы пишете код до 1990 года.

Очевидно, я переворачиваюсь, но на самом деле сейчас 21-й век. 127 персонажей уже давно перестали быть достаточными. Да, вы можете использовать UTF8, но зачем беспокоиться о головной боли?

0 голосов
/ 31 декабря 2008

1) Как упомянул Грег, wstring полезен для интернационализации, именно тогда вы будете выпускать свой продукт на языках, отличных от английского

4) Проверьте это для широкого характера http://en.wikipedia.org/wiki/Wide_character

...