c++ - libreria - ¿Cuál es la diferencia entre std:: string y std:: basic_string? ¿Y por qué se necesitan ambos?
stl class c++ (3)
Una std::string
es una instanciación de la plantilla std::basic_string
con un tipo de char
. Necesita ambos para poder crear cadenas de caracteres además de char
, como std::basic_string<wchar_t>
para una cadena de caracteres anchos. O si desea una cadena con elementos de 32 bits, std::basic_string<unsigned int>
.
¿Cuál es la diferencia entre std::string
y std::basic_string
? ¿Y por qué se necesitan ambos?
std::basic_string
es una plantilla de clase para hacer cadenas de tipos de caracteres, std::string
es un typedef
para una especialización de esa plantilla de clase para char
. Sí, ambos son necesarios (o al menos requeridos por el estándar).
std::string
es una instanciación de std::basic_string<T>
:
typedef std::basic_string<char> string
std::basic_string
es necesario para tener una interfaz similar para todo tipo de cadenas ( wstring
por ejemplo).