¿Cuáles son las ventajas de utilizar las bibliotecas C++ Boost?[cerrado]

StackOverflow https://stackoverflow.com/questions/125580

  •  02-07-2019
  •  | 
  •  

Pregunta

Entonces, he estado leyendo y parece que las bibliotecas Boost se usan mucho en la práctica (aunque no en mi tienda).¿Por qué es esto?¿Y qué lo hace tan maravilloso?

¿Fue útil?

Solución

Aumentar se utiliza tan ampliamente porque:

  • Es de código abierto y está revisado por pares.
  • Proporciona un amplia gama de funcionalidad independiente de la plataforma que STL pasó por alto.
  • Es un complemento de STL más que un reemplazo.
  • Muchos de los desarrolladores de Boost están en el comité de estándares de C++.De hecho, se considera que muchas partes de Boost estarán incluidas en la próxima biblioteca estándar de C++.
  • Está muy bien documentado.
  • Es licencia permite la inclusión en proyectos de código abierto y de código cerrado.
  • Sus características no son generalmente dependen unos de otros para que pueda vincular sólo las piezas que necesita.[Luc Hermittecomentario de]

Otros consejos

Desde la página de inicio:

"... uno de los proyectos de biblioteca C ++ más respetados y diseñados por expertos del mundo". - Herb Sutter y Andrei Alexandrescu, estándares de codificación C ++

"Artículo 55:Familiarícese con Boost. " - Scott Meyers, efectivo C ++, 3ª ed.

"La solución obvia para la mayoría de los programadores es utilizar una biblioteca que proporcione una plataforma elegante y eficiente independiente de los servicios necesarios.Los ejemplos son el impulso ... " - Bjarne stroustrup, abstracción, bibliotecas y eficiencia en C ++

Entonces, es una variedad de bibliotecas ampliamente utilizadas y aceptadas, pero ¿por qué la necesitarías?

Si necesitas:

  • expresión regular
  • enlace de función
  • funciones lambda
  • pruebas unitarias
  • punteros inteligentes
  • no copiable, opcional
  • publicación por entregas
  • fechas genéricas
  • sistema de archivos portátil
  • topes circulares
  • utilidades de configuración
  • biblioteca de imágenes genérica
  • TR1
  • hilos
  • uBLAS

y más cuando codificas en C++, echa un vistazo a Aumentar.

Debido a que agregan muchas cosas que faltan en la biblioteca estándar, algunas de ellas se incluyen en el estándar.

Impulsar a las personas no mientes:

¿Por qué una organización debería utilizar Boost?

En una palabra, Productividad.El uso de bibliotecas de alta calidad como el desarrollo inicial de las velocidades de refuerzo, da como resultado menos errores, reduce la reinvención de la rueda y reduce los costos de mantenimiento a largo plazo.Y dado que las bibliotecas de impulso tienden a convertirse en estándares de facto o de jure, muchos programadores ya están familiarizados con ellas.

Diez de las bibliotecas Boost se incluyen en el TR1 de la biblioteca estándar C ++, por lo que están programados para una estandarización completa posterior.Más bibliotecas de impulso están en proceso para TR2.El uso de bibliotecas Boost le da a una organización una ventaja en la adopción de nuevas tecnologías.

Muchas organizaciones ya usan programas implementados con Boost, como Adobe Acrobat Reader 7.0.

Algunas clases de Boost son muy útiles (shared_ptr), pero creo que se volvieron un poco locas con los rasgos y conceptos de Boost.Los tiempos de compilación y los enormes tamaños binarios son completamente una locura con Boost, como es el caso con cualquier código con muchas plantillas.Tiene que haber un equilibrio.No estoy seguro de si Boost lo ha encontrado.

Agrega bibliotecas que permiten un enfoque más moderno de la programación en C++.

En mi experiencia, muchos programadores de C++ son en realidad programadores de C++ de principios de la década de 1990, que prácticamente escriben clases de C++, sin mucho uso de genéricos.El enfoque más moderno utiliza genéricos para componer software en conjunto de una manera que se parece más a lenguajes dinámicos, pero al final aún obtienes verificación de tipo/rendimiento.Es un poco feo de ver.Pero una vez que superas los problemas de sintaxis, es realmente bastante bueno.Boost te brinda muchas de las herramientas que necesitas para componer cosas fácilmente.punteros inteligentes, funciones, lambdas, enlaces, etc.Luego están las bibliotecas Boost que explotan esta forma más nueva de escribir C++ para proporcionar cosas como redes, expresiones regulares, etc., etc.

Si está escribiendo muchos bucles for, o haciendo movimientos manuales de objetos de función, o administrando la memoria, entonces definitivamente debería verificar el impulso.

BOOST es una colección de bibliotecas que satisfacen necesidades comunes a muchos proyectos de C++.Generalmente, priorizan la corrección, la reutilización, la portabilidad, el rendimiento en tiempo de ejecución y la eficiencia del espacio sobre la legibilidad del código de implementación de BOOST o, a veces, los tiempos de compilación.Suelen no cubrir todos los requisitos funcionales de alto nivel (p. ej.marcos de aplicaciones), y en su lugar (afortunadamente) ofrecen bloques de construcción que se pueden combinar más libremente sin dictar ni dominar el diseño de la aplicación.

Las razones importantes para considerar el uso de BOOST incluyen:

  • la mayoría de las bibliotecas están bastante bien probadas y diseñadas:generalmente obtienen una revisión razonablemente sólida por parte de algunos programadores excelentes, en comparación con personas con soluciones caseras en el mismo espacio de problemas, y se utilizan lo suficientemente ampliamente como para recopilar comentarios extensos del mundo real.
  • ya está escrito y su solución probablemente no lo esté
  • es bastante portátil (pero eso varía según la biblioteca)
  • más personas en la comunidad C++ tendrán una ventaja para ayudarlo con su código
  • BOOST es a menudo un campo de pruebas para la introducción al estándar C++, por lo que tendrá menos trabajo que hacer para reescribir su código para que sea compatible con estándares futuros sin BOOST.
  • Debido a la demanda de la comunidad, es más probable que los proveedores de compiladores prueben y reaccionen ante problemas de corrección con el uso de BOOST.
  • La familiaridad con las bibliotecas de Boost le ayudará a realizar un trabajo similar en otros proyectos, posiblemente en otras empresas, donde cualquier código que pueda escribir ahora podría no estar disponible para su reutilización.

Las bibliotecas se describen en una o dos líneas aquí: http://www.boost.org/doc/libs/.

Porque la biblioteca estándar de C++ no es tan completo.

cualquier cosa con Kevlin HenneySe debe tomar nota de la participación de

Boost básicamente es la sinopsis de lo que será el Estándar, además con toda la revisión por pares y el uso que obtiene Boost, puede estar bastante seguro de que obtendrá un buen trato para sus dependencias.

Sin embargo, la mayoría de las tiendas no utilizan Boost porque es una dependencia externa.Y en realidad, reducir las dependencias externas también es muy importante.

Boost es para C++ algo así como .NET Framework es para C#, pero tal vez en una escala menor.

Utilizo un poco la biblioteca del sistema de archivos y el boost::shared_ptr es bastante ingenioso.He oído que también hace otras cosas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top