2009-10-19 8 views
9

¿Qué beneficios obtengo de Apache C++ standard library que no obtengo de las implementaciones de STL que vienen con el compilador y las bibliotecas de Boost?¿Por qué debería usar Apache C++ Standard Library en lugar de cualquier otra implementación de STL junto con Boost?

+0

puesto algunos antecedentes –

+0

que se sugirió el uso de C de Apache ++ biblioteca estándar en mi proyecto, ya que es 'portátil' y también tiene un amplio conjunto de colecciones y muchas otras implementaciones de algoritmos. No quiero seguir ciegamente la sugerencia, por lo que busco el aporte de las personas que tienen mejores conocimientos y experiencia utilizando diferentes bibliotecas de plantillas. Gracias. –

+0

Acerca de su parte de Boost: ¿está preguntando si debería utilizar la Biblioteca estándar de Apache C++ en lugar de Boost? O Boost en lugar de una implementación de STL – blwy10

Respuesta

5

El proyecto Apache C++ biblioteca estándar es una implementación completa de la norma ISO/IEC 14882 C++ estándar Biblioteca.

La más distintiva característica de esta implementación de la biblioteca estándar de C++ es su portabilidad a un gran número de compiladores de C++, sistemas operativos y hardware arquitecturas.

Parece que si valoras la portabilidad extrema esto es para ti. Si no lo hace, la mayoría de las personas adoptan por defecto la implementación predeterminada de su compilador, por lo que si alguna vez tiene problemas, la comunidad será más grande. Si no se encuentra con problemas de implementación, no veo por qué debería marcar una gran diferencia.

Normalmente me gusta esta opinión, pero me gusta la idea de tener una empresa que pueda pagar para solucionar problemas, mis desarrolladores (y yo) no somos lo suficientemente inteligentes (o no tenemos el tiempo) para bucear internos y corregir errores.

1

La biblioteca Apache C++ fue originalmente una biblioteca comercial de Rogue Wave. Afirman que están siguiendo muy de cerca el estándar C++ y están trabajando arduamente para garantizar la portabilidad en varios sistemas operativos y compiladores. La biblioteca de Rogue Wave afirma haber sido portada a más de 40 compiladores.

5

Una de las ventajas que stdxx reclamaciones parece ser cierto para mí:

  • Optimizado para compilaciones rápidas y extremadamente pequeño archivo ejecutable tamaños

En este trabajo, BS habla sobre una nueva idea aplicada en algunos compiladores de C++ llamada SCARY. Lo leí por primera vez en one of his papers. De todos modos, esta característica permite reducir el tamaño de los ejecutables producidos en una gran cantidad (~1x - ~25x), y más rápido en (~1.2x - ~2.1x). En el primer artículo, dijo que Rogue Wave STL apoya SCARY, al menos en las implementaciones modernas:

La versión más reciente de Rogue Wave STL tiene contenedor independiente iteradores en su modo de producción, pero algunos de los contenedores estándar Los iteradores ' no son independientes en el modo de depuración . N2911 explica que estas dependencias no son realmente necesarias con fines de depuración y pueden eliminarse fácilmente .

lo tanto, si stdxx se basa en Rogue Wave STL, que podría tener esta idea en práctica ya.

+0

stdxx se bifurcó en 2005; el documento SCARY es mucho más reciente. – MSalters

0

No estoy familiarizado con la biblioteca estándar de Apache C++, por lo que no estoy seguro de qué servicios tiene.Si encuentra que proporciona todo lo que necesita, entonces no hay mucha diferencia al usar eso o usar otra implementación de STL junto con Boost. Sin embargo, Boost proporciona mucho más que algunas características TR1 y pequeñas cosas como punteros inteligentes. También cuenta con:

  1. Lambdas/cierres
  2. plantilla y preprocesador metaprogramming
  3. Señales y aplicación ranuras/Observador/patrón Listener
  4. envoltorios de referencia
  5. Una gran cantidad de otras cosas al azar que no estás es probable encontrar en otra parte en una sola biblioteca

Todo depende de las instalaciones que necesita.

Cuestiones relacionadas