Ha pasado bastante tiempo ahora que he estado codificando en C++ y creo que la mayoría de los que codifican en C++, estarían de acuerdo en que una de las decisiones más delicadas es elegir entre un número casi vertiginoso de tipos de cadenas disponibles. En su mayoría prefiero ATL Cstring
por su facilidad de uso y características, pero me gustaría un estudio comparativo de las opciones disponibles. He comprobado SO y no he encontrado ningún contenido que ayude a elegir la cadena correcta. Hay sitios web que indican las conversiones de una cadena a otra, pero eso no es lo que queremos aquí.cadenas de C++, ¿cuándo usar qué?
Me encantaría tener una comparación basada en la especialidad, el rendimiento, la portabilidad (Windows, Mac, Linux/Unix, etc.), facilidad de uso/características, soporte de múltiples idiomas (Unicode/MBCS), contras (en su caso), y cualquier otro caso especial.
Estoy enumerando las cadenas que he encontrado hasta ahora. Creo que habría más, por lo que podemos editar esto más tarde para adaptar otras opciones. Eso sí, he trabajado sobre todo en Windows, por lo que la lista refleja la misma:
char*
std::string
- de STL
basic_string
- de ATL
CString
- de MFC
CString
BSTR
_bstr_t
CComBstr
Úselos a todos. Terminará con todos ellos allí de todos modos, así que no se moleste en intentar ser quisquilloso al comienzo –
Use 'CComBstr' solo cuando trabaje con COM. –
Puede agregar cadenas ICU en la mezcla para un manejo Unicode adecuado. –