Различия между включенными <xstring>, <cstring>, <string> и <wstring> в С++
Я видел следующие директивы #include
:
#include <xstring>
#include <cstring>
#include <string>
#include <wstring>
В чем заключаются различия между этими директивами? Я пропустил какие-либо другие, которые должны считаться частью этой группы?
Ответы
Ответ 1
<string>
где std::string
определено.
<xstring>
- это заголовок Microsoft С++, содержащий фактическую реализацию шаблона std::basic_string
. Вам не нужно включать <xstring>
самостоятельно. <string>
включает его для реализации basic_string
.
<cstring>
- стандартная библиотека строк C (strcpy
, strcat
и т.д.), помещенная в пространство имен С++ std
.
wstring
не является файлом заголовка, о котором я знаю. std::wstring
является wchar_t
версией std::string
и определяется при включении <string>
.
Ответ 2
Только <cstring>
и <string>
являются стандартными заголовками. <xstring>
- нестандартный заголовок.
#include <cstring>
Это <string.h>
, но с объявлениями, помещенными в пространство имен std
. Это "С++ версия" заголовка C.
#include <string>
Здесь определяется std::string
. Он не имеет ничего общего с заголовком C.