parametros ejecutar compilar compilador c++ gcc

c++ - ejecutar - ¿Cuál es la "vstring" de GCC?



parametros del compilador gcc (1)

Leí un informe de errores de GCC y la gente hablaba de "vstring". Al buscar en la WEB, me di cuenta de que http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.2/vstring_8h.html .

¿Puede alguien dar más detalles sobre para qué sirve y para qué sirve? ¿Por qué usarlo en lugar de std :: string?


La vstring de GCC es una clase de cadena versátil, que se introdujo en la implementación libstdc++ GCC 4.1.

Es compatible con std::basic_string , con estos detalles adicionales:

  • Se proporcionan dos clases base:
    • el predeterminado evita el conteo de referencias y está optimizado para cadenas cortas;
    • el alternativo, todavía lo usa (conteo de referencia, eso es) mientras mejora en algunas áreas de bajo nivel (por ejemplo, alineamiento). Ver vstring_fwd.h para algunos vstring_fwd.h útiles.
  • Se han reescrito varios algoritmos (por ejemplo, reemplazar), se simplificó el código y se agregaron optimizaciones simples.
  • La opción 3 de DR 431 se implementa para ambas bases disponibles, mejorando así el soporte para asignadores con estado.

DR431 es el Informe de defectos 431 del Grupo de trabajo de bibliotecas , con la opción 3 buscando implementar mejor soporte de asignador para la clase para permitir un mejor intercambio y otras operaciones relacionadas con el asignador.

Los detalles básicos provienen de las notas de la versión de GCC 4.1 , en la sección Biblioteca de tiempo de ejecución.

editar:

Parece que el propósito original de esta extensión era proporcionar una base para la implementación de C ++ 11 std::string . Paolo Carlini, colaborador de GCC / libstdc ++, comenta en este Informe de <ext/vstring.h> GCC que <ext/vstring.h> contiene una versión experimental contada que no es de referencia de la siguiente std::string . Comentario fechado el 12 de abril de 2012:

Lo que intentamos explicar es que este tipo de problema es bien conocido y, más o menos, afecta a cualquier implementación de referencia contada ... Ese no es el caso cuando no se utiliza el recuento de referencias y, de hecho, no se utilizará (según el nuevo C ++ 11 Standard) en una nueva implementación de std::string que actualmente mostramos como <ext/vstring.h> ...