Строки C ++, когда что использовать?

Я уже довольно давно занимаюсь программированием на C ++, и я думаю, что большинство, кто на самом деле кодирует на C ++, согласятся с тем, что один из самых сложных решения - выбирать из почти головокружительного количества доступных типов струн. Я в основном предпочитаю ATL Cstring из-за простоты использования и возможностей, но хотел бы провести сравнительное исследование доступных вариантов. Я проверил SO и не нашел никакого контента, который помогает выбрать правильную строку. Существуют веб-сайты, на которых указывается преобразование одной строки в другую, но это не то, что мы хотим здесь.

Хотелось бы иметь сравнение, основанное на специализации, производительности, переносимости (Windows, Mac, Linux / Unix и т. Д.), Простоте use / features, многоязычная поддержка (Unicode / MBCS), минусы (если есть) и любые другие особые случаи.

Я перечисляю строки, с которыми я сталкивался до сих пор. Я считаю, что их будет больше, поэтому мы можем отредактировать это позже, чтобы учесть другие варианты. Обратите внимание, я работал в основном в Windows, поэтому список отражает то же самое:

  1. char *
  2. std :: string
  3. STL basic_string
  4. ATL CString
  5. MFC ' s CString
  6. BSTR
  7. _bstr_t
  8. CComBstr
6
задан Mateen Ulhaq 15 May 2011 в 08:44
поделиться