2010-04-02 9 views
9
  1. ¿Ha utilizado una implementación comprobada de STL?
  2. ¿Encontró errores que no esperaba?
  3. ¿Hay alguno que pueda probar en Linux de forma gratuita?

Respuesta

12

La implementación de GNU de la biblioteca estándar de C++ que viene con GCC ha comprobado STL. Simplemente agregue -D_GLIBCXX_DEBUG a su línea de comando.

Sí, lo he usado. No puedo decir con certeza si se trata de errores detectados, pero me da más confianza de que ciertas clases de errores no se pierden.

Debido a la sobrecarga de rendimiento, solo usamos STL comprobado para compilaciones de depuración.

1
  1. Microsoft VC++ implementa la comprobación.
  2. Captura fácilmente lugares donde los iteradores hacen referencia a la memoria fuera del límite del contenedor STL al que pertenece.
  3. No estoy seguro, pero creo que deberías probar la biblioteca de Boost C++. Tiene una gran variedad de funciones, incluida la comprobación de conceptos, etc. ¡Demonios, se ha convertido en la base del estándar C++ 0x!
+0

PD: El uso de implementaciones comprobadas de STL causará bastante impacto en el rendimiento, y por lo que se conoce a C++: ¡su rendimiento! – themoondothshine

+0

También se activa cuando utiliza iteradores de inicio/final que no apuntan al mismo contenedor. – sbi

+2

@themoondotshine: solo usa la versión comprobada en modo DEPURAR, ¿verdad? – Nate

2

No lo he usado nunca, pero una búsqueda rápida muestra que STLPort tiene checked iterators en modo DEPURACIÓN.

Cuestiones relacionadas