nestle libreria library drink descargar bebida c++ boost

c++ - libreria - descargar boost



Boost Library (12)

Desde que comencé a usar este sitio, sigo escuchando sobre la biblioteca de Boost. Me pregunto cuáles son algunos de los principales beneficios de la biblioteca de Boost (por lo tanto, ¿por qué debería usarla) y qué tan portátil es la biblioteca de Boost?


99% portátil.

Diría que tiene bastantes bibliotecas que son realmente útiles una vez que descubres una necesidad que se resuelve mediante el impulso. O lo codifica usted mismo o usa una biblioteca muy sólida. Tener fuera de la fuente de shelve para cosas como Multi-Index, Lambda, Opciones de programa, RegEx, SmartPtr y Tuple es increíble ...

Lo mejor es pasar algún tiempo revisando la documentación de las diferentes bibliotecas y evaluando si podría ser útil para usted.

¡¡Digno!!


Boost es genial, pero solo jugando a Devil''s Advocate aquí hay algunas razones por las que quizás no quieras usar Boost:

  • A veces falla al compilar / funcionar correctamente en compiladores antiguos.
  • A menudo aumenta los tiempos de compilación más que los enfoques de plantillas pesadas.
  • Algún código de Boost puede no hacer lo que crees que hace. Lee la documentación!
  • El abuso de plantillas puede llevar a mensajes de error ilegibles.
  • El abuso de plantillas puede llevar a un código difícil de atravesar en el depurador.
  • Es el borde de curación C ++. La próxima versión de Boost ya no puede compilar en su compilador actual (antiguo).

Todo esto no significa que no deba echarle un vistazo al código de Boost y obtener algunas ideas usted mismo, incluso si no usa Boost como es.


Boost es una biblioteca muy extensa de (generalmente) construcciones genéricas que pueden ayudar en casi cualquier aplicación. Esto se puede demostrar por el hecho de que se han incluido muchos componentes impulsores en las especificaciones C ++ 0x.

También es portátil en al menos las principales plataformas, y debería ser portátil para casi cualquier cosa con un compilador C ++ que cumpla con los estándares.

La única advertencia es que puede haber muchas dependencias entre bibliotecas de refuerzo, por lo que es más difícil seleccionar solo un componente específico para distribuir (que no sea la biblioteca de impulso completa).



Boost está organizado por varios miembros del comité estándar.
Por lo tanto, es un caldo de cultivo para las bibliotecas que estará en la próxima norma.

  1. Es una extensión de la STL (llena los bits que quedan)
  2. Está bien documentado.
  3. Está bien revisado por pares.
  4. Tiene una alta actividad, por lo que los errores se encuentran y se solucionan rápidamente.
  5. Es plataforma neutral y funciona en todas partes.
  6. Es de uso gratuito.

Con tr1 pronto, es bueno saber que el impulso ya tiene una gran cantidad de terreno cubierto. Muchas de las bibliotecas en tr1 básicamente se adaptan directamente de los originales reforzados y, por lo tanto, se han probado y probado. La diferencia es que se han movido al espacio de nombres std :: tr1 (en lugar de aumentar).

Todo lo que necesita hacer es agregar lo siguiente a la ruta de búsqueda predeterminada de los compiladores:

<boost-install-path>/boost/tr1/tr1

Luego, cuando incluyas los encabezados estándar, boost importará automáticamente todo el material requerido en el espacio de nombres std :: tr1.

Por ejemplo:

Para usar std :: tr1 :: share_ptr solo necesita incluir <memoria>. Esto le dará todos los punteros inteligentes con un solo archivo.


Las ventajas de Boost: está ampliamente disponible, se transferirá a cualquier compilador moderno de C ++ o a cualquier plataforma.
Las funciones son independientes de la plataforma, no es necesario aprender un nuevo diseño de hilo para cada nuevo marco.
Encapsula muchas funciones específicas de la plataforma, como los sistemas de archivos de una manera estándar.

¡Es con lo que debería haber enviado C ++! Una gran parte de la popularidad de Java se envió con una biblioteca estándar para hacer todo lo que quisieras. C ++ lamentablemente solo heredó las funciones estándar limitadas de C / Unix.


Obtienes muchas de las cosas que vienen en C ++ 0x. Pero aparte de esa generalidad, algunos de los mejores detalles son una biblioteca de expresiones regulares simple, una biblioteca de casting para el casting de cuerdas a enteros (yeso léxico):

int iResult = 0; try { iResult = lexical_cast<int>("4"); } catch(bad_lexical_cast &) { cout << "Unable to cast string to int"; }

Una biblioteca de fecha / hora , entre otros ...

using namespace boost::gregorian; date weekstart(2002,Feb,1); date thursday_next = next_weekday(weekstart, Thursday); // following Thursday

También hay una interfaz de Python (Boost Python), una DSL lexer / analizadora (Boost Spirit):

// A grammar in C++ for equations group = ''('' >> expression >> '')''; factor = integer | group; term = factor >> *((''*'' >> factor) | (''/'' >> factor)); expression = term >> *((''+'' >> term) | (''-'' >> term));

y eso es solo rascar la superficie ...


Simplemente puede leer la página Información de fondo de Boost para obtener una descripción general rápida de por qué debería usar Boost y para qué puede usarlo. Vale la pena los pocos minutos que lleva.


También tenga en cuenta que la mayor parte del impulso son las plantillas, por lo que no requiere la construcción
(solo incluya los archivos de encabezado correctos).

Las pocas partes que requieren construcción son opcionales:
Estos pueden construirse de forma independiente, evitando así una hinchazón innecesaria para el código innecesario.


Todo lo anterior, además de que fomenta muchas técnicas modernas y de mejor práctica en C ++. Tiende a mejorar la calidad de tu código.


Boost es una colección de librerías C ++ revisadas por pares de alta calidad que ponen énfasis en la portabilidad y corrección. Actúa como el terreno de prueba de hecho para nuevas adiciones al lenguaje y la biblioteca estándar. Mira su página web para más detalles.


shared_ptr y weak_ptr , especialmente en código multiproceso, son los únicos que vale la pena instalar boost. BOOST_STATIC_ASSERT también es genial para hacer una verificación lógica en tiempo de compilación.

El hecho de que muchas de las clases y utilidades en potencia estén en los encabezados, lo que significa que puedes obtener mucha funcionalidad sin tener que compilar nada en absoluto, es también un plus. Por lo general, la portabilidad no es un problema, a menos que utilice un compilador extremadamente antiguo. Una vez intenté hacer que MPL funcionara con VC6 e imprimió 40,000 advertencias / errores internos antes de explotar completamente. Pero, en general, la mayoría de la biblioteca debería funcionar independientemente de su plataforma o proveedor del compilador.

Tenga en cuenta el hecho de que bastantes cosas de Boost ya están en TR1, y muy probablemente estarán en la próxima revisión de la biblioteca estándar de C ++. Ese es un gran respaldo.