library - libreria boost c++
¿Cuáles son las ventajas de usar las bibliotecas de C++ Boost? (11)
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 los primeros programadores de C ++ de la década de 1990, casi escribieron clases de C ++ y no usaron mucho genéricos. El enfoque más moderno utiliza los genéricos para componer software de una manera más parecida a los lenguajes dinámicos, pero al final todavía obtiene el control / rendimiento del tipo. Es un poco feo mirarlo. Pero una vez que superas los problemas de sintaxis, es bastante agradable. Boost te brinda muchas de las herramientas que necesitas para componer cosas fácilmente. punteros inteligentes, funciones, lambdas, enlaces, etc. Luego, existen bibliotecas de impulso que explotan esta nueva forma de escribir C ++ para proporcionar cosas como redes, expresiones regulares, etc., etc.
si está escribiendo muchos bucles for, o girando objetos de función, o haciendo gestión de memoria, entonces definitivamente debe verificar boost out.
Entonces, he estado leyendo y parece que las bibliotecas Boost se usan mucho en la práctica (no en mi tienda, sin embargo). ¿Por qué es esto? y lo que lo hace tan maravilloso?
Algunas clases de Boost son muy útiles (shared_ptr), pero creo que se volvieron un poco locas con los rasgos y conceptos en Boost. Los tiempos de compilación y los enormes tamaños binarios son completamente locos con Boost, como es el caso con cualquier código de plantilla pesada. Tiene que haber un equilibrio. No estoy seguro de si Boost lo ha encontrado.
BOOST es una colección de necesidades de llenado de bibliotecas comunes a muchos proyectos de C ++. En general, priorizan la corrección, la reutilización, la portabilidad, el rendimiento en tiempo de ejecución y la eficiencia de espacio sobre la legibilidad del código de implementación de BOOST, o en ocasiones compilan los tiempos. Tienden a no cubrir los requisitos funcionales de alto nivel (por ejemplo, marcos de aplicación), y en su lugar (afortunadamente) ofrecen bloques de construcción que se pueden combinar más libremente sin imponer o 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: en general, algunos programadores excelentes obtienen una revisión razonablemente sólida, en comparación con personas con soluciones caseras en el mismo espacio problemático, y son ampliamente utilizadas para recopilar comentarios extensos sobre el mundo real.
- ya está escrito y su solución probablemente no sea
- es bastante portátil (pero eso varía según la biblioteca)
- más personas en la comunidad de C ++ tendrán una ventaja para ayudarte con tu código
- BOOST es a menudo un terreno de prueba para la introducción al estándar C ++, por lo que tendrá menos trabajo que hacer en la reescritura de su código para ser compatible con futuros estándares sin BOOST
- debido a la demanda de la comunidad, es más probable que los fabricantes de compiladores prueben y reaccionen a los problemas de corrección con el uso BOOST
- la familiaridad con las bibliotecas de impulso le ayudará a realizar un trabajo similar en otros proyectos, posiblemente en otras compañías, donde el código que pueda escribir ahora podría no estar disponible para su reutilización
Las bibliotecas se describen en una línea o dos aquí: http://www.boost.org/doc/libs/ .
Boost es para C ++ algo así como .NET Framework es para C #, pero tal vez en una escala menor.
Cualquier cosa con la participación de Kevlin Henney debe tomarse en cuenta.
Desde la página de inicio:
"... uno de los proyectos de bibliotecas C ++ mejor valorados y diseñados por expertos en el mundo". - Herb Sutter y Andrei Alexandrescu, C ++ Estándares de codificación
"Artículo 55: Familiarízate con Boost". - Scott Meyers, Effective C ++, 3rd 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 BOOST ..." - Bjarne Stroustrup, Abstracción, bibliotecas y eficiencia en C ++
Entonces, es una gama de bibliotecas ampliamente utilizadas y aceptadas, pero ¿por qué la necesitarías?
Si necesitas:
- regex
- enlace de funciones
- funciones lambda
- pruebas unitarias
- punteros inteligentes
- no copiable, opcional
- publicación por entregas
- fechas genéricas
- sistema de archivos portátil
- Buffers circulares
- config utils
- biblioteca de imágenes genéricas
- TR1
- trapos
- uBLAS
Mejore básicamente la sinopsis de en qué se convertirá el estándar, además de que con toda la revisión y el uso por parte de pares que obtiene Boost, puede estar bastante seguro de que obtendrá una buena oferta para sus dependencias.
Sin embargo, la mayoría de las tiendas no usan Boost, porque es una Dependencia Externa. Y en realidad, reducir las dependencias externas también es muy importante.
Porque agregan muchas cosas faltantes a la biblioteca estándar, tanto que algunas de ellas se incluyen en el estándar.
Las personas de Boost no mienten:
¿Por qué debería una organización usar Boost?
En una palabra, Productividad. El uso de bibliotecas de alta calidad como Boost acelera el desarrollo inicial, da como resultado menos errores, reduce la reinvención de la rueda y reduce los costos de mantenimiento a largo plazo. Y como las bibliotecas de Boost tienden a convertirse en estándares de facto o de jure, muchos programadores ya están familiarizados con ellas.
Diez de las bibliotecas de Boost están incluidas en el TR1 de la Biblioteca Estándar de C ++, por lo que están programadas para una estandarización completa posterior. Se están preparando más bibliotecas de Boost para TR2. El uso de las bibliotecas de Boost le da a la 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.
Porque la biblioteca estándar de C ++ no es tan completa .
Utilizo la biblioteca del sistema de archivos para salir un poco, y el boost :: shared_ptr es bastante ingenioso. Escuché que hace otras cosas también.
Boost se usa de manera extensa porque:
- Es de código abierto y revisado por pares.
- Proporciona una amplia gama de funcionalidades independientes de la plataforma que STL omitió.
- Es un complemento de STL en lugar de un reemplazo.
- Muchos de los desarrolladores de Boost están en el comité estándar de C ++. De hecho, muchas partes de Boost se consideran incluidas en la próxima biblioteca estándar de C ++.
- Está documentado muy bien.
- Su license permite la inclusión en proyectos de código abierto y de código cerrado.
- Sus características no suelen depender entre sí, por lo que puede vincular solo las partes que necesita. [Comentario de Luc Hermitte ]