Различия между включением <xstring>, <cstring>, <string>и <wstring>в C ++ - PullRequest
15 голосов
/ 10 марта 2010

Я видел следующие #include директивы:

#include <xstring>

#include <cstring>

#include <string>

#include <wstring>

В чем различия между этими директивами? Я скучал по другим, которые следует считать частью этой группы?

Ответы [ 2 ]

18 голосов
/ 10 марта 2010

<string> - это место, где определено std::string.

<xstring> - заголовок Microsoft C ++, содержащий фактическую реализацию шаблона std::basic_string. Вам никогда не нужно включать <xstring> самостоятельно. <string> включает его для реализации basic_string.

<cstring> - стандартная библиотека строк C (strcpy, strcat и т. Д.), Помещенная в пространство имен C ++ std.

wstring - это не файл заголовка, о котором я знаю. std::wstring является wchar_t версией std::string и определяется при включении <string>.

16 голосов
/ 10 марта 2010

Только <cstring> и <string> являются стандартными заголовками. <xstring> - это нестандартный заголовок.

#include <cstring>

Это <string.h>, но с объявлениями, помещенными в пространство имен std. Это «версия C ++» заголовка C.

#include <string>

Здесь определено std::string. Это не имеет ничего общего с заголовком C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...