3 ответов:
std::basic_string- это шаблон класса для создания строк из типов характера,std::stringэтоtypedefдля специализации этого шаблона класса дляchar. Да, они оба необходимы (или, по крайней мере, требуются стандартом).
std::stringсозданиеstd::basic_string<T>:typedef std::basic_string<char> string
std::basic_stringнеобходимо иметь подобный интерфейс для всех типов строк (wstringнапример).
A
std::stringявляется экземпляромstd::basic_stringшаблон с типомchar. Вам нужны оба, так что вы можете сделать строки вещей, кромеcharтакоеstd::basic_string<wchar_t>для строки широких символов. Или если вы хотите строку с 32-битными элементами,std::basic_string<unsigned int>.
Comments