Entonces, he estado leyendo y parece que las bibliotecas de Boost se usan mucho en la práctica (aunque no en mi tienda). ¿Por qué es esto? y que lo hace tan maravilloso?
Entonces, he estado leyendo y parece que las bibliotecas de Boost se usan mucho en la práctica (aunque no en mi tienda). ¿Por qué es esto? y que lo hace tan maravilloso?
Respuestas:
Boost se usa mucho porque:
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 ++
"Ítem 55: Familiarízate con Boost". - Scott Meyers, C ++ efectivo, 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. Algunos ejemplos son BOOST ..." - Bjarne Stroustrup, Abstraction, bibliotecas y eficiencia en C ++
Entonces, es una variedad de bibliotecas ampliamente utilizadas y aceptadas, pero ¿por qué la necesitaría?
Si necesitas:
Debido a que agregan muchas cosas que faltan a la biblioteca estándar, algunas de ellas se incluyen en el estándar.
Impulsar a la gente no miente:
¿Por qué una organización debería utilizar Boost?
En una palabra, Productividad. El uso de bibliotecas de alta calidad como Boost acelera el desarrollo inicial, produce menos errores, reduce la reinvención de la rueda y reduce los costos de mantenimiento a largo plazo. Y dado que las bibliotecas Boost tienden a convertirse en estándares de facto o de jure, muchos programadores ya están familiarizados con ellas.
Diez de las bibliotecas Boost están incluidas en el TR1 de la biblioteca estándar de C ++, por lo que están programadas para una posterior estandarización completa. Hay más bibliotecas de Boost 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 utilizan 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 locos con los rasgos y conceptos en Boost. Los tiempos de compilación y los enormes tamaños binarios son una locura con Boost, como es el caso de cualquier código con muchas plantillas. Tiene que haber un equilibrio. No estoy seguro de que Boost lo haya 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 los programadores de C ++ de principios de la década de 1990, que escriben clases de C ++, pero no usan mucho los genéricos. El enfoque más moderno usa genéricos para componer software juntos de una manera que se parece más a los lenguajes dinámicos, sin embargo, al final, aún obtiene verificación de tipo / rendimiento. Es un poco feo de ver. Pero una vez que superas los problemas de sintaxis, realmente es 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 nueva forma de escribir C ++ para proporcionar cosas como redes, expresiones regulares, etc., etc.
Si está escribiendo muchos bucles for, objetos de función de balanceo manual, o gestionando la memoria, definitivamente debería probar boost.
BOOST es una colección de bibliotecas que satisfacen necesidades comunes a muchos proyectos de C ++. Por lo general, 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 BOOST o, a veces, los tiempos de compilación. Tienden a no cubrir los requisitos funcionales completos de alto nivel (por ejemplo, marcos de aplicación) y en su lugar (afortunadamente) ofrecen bloques de construcción que pueden combinarse más libremente sin dictar o dominar el diseño de la aplicación.
Las razones importantes para considerar el uso de BOOST incluyen:
Las bibliotecas se describen en una línea o dos aquí: http://www.boost.org/doc/libs/ .
Porque la biblioteca estándar de C ++ no es tan completa .
Se debe tomar nota de todo lo relacionado con la participación de Kevlin Henney .
Básicamente, impulsa la sinopsis de lo que se convertirá el Estándar, además de toda la revisión y el uso de pares que Boost obtiene, puedes estar bastante seguro de que obtendrás una buena oferta por tus 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.
Utilizo la biblioteca del sistema de archivos para cerrar un poco, y el boost :: shared_ptr es bastante ingenioso. Escuché que también hace otras cosas.