Bibliotecas Boost Índice Desarrolladores Lista de bibliotecas de Boost Bibliotecas retiradas de...


Bibliotecas de C++Programación genérica


bibliotecassoftware librerevisión por pareslenguaje de programaciónC++tipo BSD






































Bibliotecas Boost C++

boost.org

Boost.png
Información general
Desarrollador(es)
Comunidad de Boost C++[1]
Última versión estable
1.58.0
17 de abril de 2015 (3 años, 11 meses y 1 día)
Género
Biblioteca
Programado en
C++
Sistema operativo
Multiplataforma
Licencia
Boost Software License[2]
En español
No


Boost es un conjunto de bibliotecas de software libre y revisión por pares preparadas para extender las capacidades del lenguaje de programación C++. Su licencia, de tipo BSD, permite que sea utilizada en cualquier tipo de proyectos, ya sean comerciales o no.




Índice






  • 1 Desarrolladores


  • 2 Lista de bibliotecas de Boost


    • 2.1 Procesamiento de cadenas y texto


    • 2.2 Contenedores


    • 2.3 Iteradores


    • 2.4 Algoritmos


    • 2.5 Programación de funciones de orden superior


    • 2.6 Programación genérica


    • 2.7 Metaprogramación de plantillas


    • 2.8 Metaprogramación de preprocesador


    • 2.9 Programación Concurrente


    • 2.10 Matemáticas y numéricos


    • 2.11 Corrección y prueba


    • 2.12 Estructuras de datos


    • 2.13 Procesamiento de imágenes


    • 2.14 Entrada/Salida


    • 2.15 Soporte a otros lenguajes de programación


    • 2.16 Memoria


    • 2.17 Análisis (parsing)


    • 2.18 Interfaces de programación


    • 2.19 Miscelánea


    • 2.20 Soluciones de "compilador roto"




  • 3 Bibliotecas retiradas de Boost


  • 4 Referencias


  • 5 Enlaces externos





Desarrolladores


Los creadores originales de Boost, Beman Dawes y David Abrahams, siguen activos en la comunidad. El autor de varios libros sobre C++, Nicolai Josuttis también ha contribuido la biblioteca array de Boost en 2001. Alrededor de 3.000 personas están suscritas a la lista de correo y decenas de ellos son muy activos.



Lista de bibliotecas de Boost



Procesamiento de cadenas y texto




  • conversion/lexical_cast: plantilla de conversión léxica, por Kevlin Henney.


  • format: Operaciones de formato de tipo seguro (similares a printf), por Samuel Krempp.


  • iostreams: Marco para la definición de flujos, buffers de flujos y filtros de entrada/salida, por Jonathan Turkanis.


  • regex: Biblioteca de expresiones regulares, por John Maddock


  • spirit: Marco analizador de LL que representa los analizadores directamente como gramáticas EBNF en funciones "inline" de C++, por Joel de Guzmán, Hartmut Kaiser, Nuffer Dan y su equipo.


  • string_algo: Biblioteca de algoritmos de cadena, por Pavol Droba.


  • tokenizer: Separación de una cadena o secuencia de caracteres en una serie de "tokens", de John Bandela.


  • wave: Implementación conforme al estándar de la funcionalidad del preprocesador C99/C++ tras una interfaz de iteradores fácil de usar, por Hartmut Kaiser.


  • xpressive: Expresiones regulares que se pueden escribir como cadenas o como expresión de plantillas, y que puede referirse el uno al otro y a sí mismos de forma recursiva con el poder de las gramáticas libres de contexto, por Eric Niebler.



Contenedores




  • array: Envoltura del contenedor de la STL para matrices de tamaño constante, por Nicolai Josuttis.


  • bimap: Mapas bidireccionales, por Matías Capeletto.


  • circular_buffer: Contenedor compatible con el de la STL también conocido como "anillo" o "buffer cíclico", por Jan Gaspar.


  • dynamic_bitset: Versión ejecutable mayor std::bitset por Jeremy Siek y Chuck Allison.


  • gil: Biblioteca genérica de imágenes, por Lubomir Bourdev y Hailin Jin.


  • graph: Componentes y algoritmos genéricos de grafos, por Jeremy Siek y un equipo de la Universidad de Notre Dame.


  • intrusive: Contenedores y algoritmos intrusivos, por Ion Gaztañaga.


  • multi_array: Contenedores multidimensionales y adaptadores para las matrices de datos contiguos, por Ron García.


  • multi_index: Contenedores con múltiples interfaces de acceso compatibles con la STL, por Joaquín M López Muñoz.


  • pointer container: Contenedores para el almacenamiento de objetos polimórficos acumulados para facilitar la programación orientada a objetos, por Thorsten Ottosen.


  • property map: Conceptos que definen interfaces que mapean claves de objetos a valores de objetos, por Jeremy Siek.


  • unordered: Contenedores asociativos desordenados, por Daniel James.


  • variant: Contenedor seguro, genérico, basado en pilas, por Eric Friedman y Itay Maman.



Iteradores




  • gil: Biblioteca genérica de imágenes, por Lubomir Bourdev y Hailin Jin.


  • graph: Contenedores y algoritmos genéricos de grafos, por Jeremy Siek y un equipo de la Universidad de Notre Dame; ahora mantenido por Andrew Sutton y Jeremiah Willcock.


  • iterators: Marco de construcción de iteradores, adaptadores, conceptos y más, por Dave Abrahams, Jeremy Siek, y Thomas Witt.


  • operators: Clases e iteradores de plantillas aritméticas, por Dave Abrahams y Jeremy Siek.


  • tokenizer: Separación de una cadena o secuencia de caracteres en una serie de "tokens", por John Bandela.



Algoritmos




  • foreach: Macro BOOST_FOREACH para desplazarnos fácilmente por los elementos de una secuencia, por Eric Niebler.


  • gil: Biblioteca genérica de imágenes, por Lubomir Bourdev y Hailin Jin.


  • graph: Componentes y algoritmos genéricos de grafos, por Jeremy Siek y un equipo de la Universidad de Notre Dame.


  • minmax: Extensiones de la biblioteca estándar para computaciones simultáneas de min/max, por Hervé Brönnimann.


  • range: Una nueva infraestructura para algoritmos genéricos que proporciona nuevos iteradores, por Thorsten Ottosen.


  • string_algo: Biblioteca de algoritmos de cadena, por Pavol Droba.


  • utility: Plantillas para las funciones next() y prior(), por Dave Abrahams y otros.



Programación de funciones de orden superior




  • bind y mem_fn: Binding generalizado para funciones/objetos/punteros y métodos miembros, por Peter Dimov.


  • function: Envoltorios para llamadas diferidas o devoluciones de llamada, por Doug Gregor.


  • functional: Adaptadores de funciones de objetos mejorados, por Mark Rodgers.


  • functional/factory: Plantillas para la creación dinámica y estática de objetos, por Tobias Schwinger.


  • functional/forward: Adaptadores que permiten que objetos con funciones genéricas acepten argumentos arbitrarios, por Tobias Schwinger.


  • functional/hash: Un hash TR1 que puede ser extendido a tipos definidos por el usuario, por Daniel James.


  • lambda: Define pequeñas funciones sin nombre en la llamada actual, entre otras cosas, por Jaakko Järvi y Gary Powell.


  • ref: Una biblioteca de utilidades para pasar referencias a funciones genéricas, por Jaako Järvi, Peter Dimov, Doug Gregor y Dave Abrahams.


  • signals: Implementación del manejo de señales y devoluciones de llamada, por Doug Gregor.


  • signals2: Segunda versión de la biblioteca anterior, por Frank Mori Hess.


  • result_of: Determina el tipo de la expresión de una llamada a una función.



Programación genérica




  • call_traits: Define tipos para pasar parámetros, por John Maddock, Howard Hinnant, ...


  • concept check: Herramientas para programación genérica, por Jeremy Siek.


  • enable_if: Inclusión selectiva de sobrecargas de funciones, por Jaakko Järvi, Jeremiah Willcock y Andrew Lumsdaine.


  • function_types: Características de tipos para llamadas, construcción de tipos, por Tobias Schwinger.


  • gil: Biblioteca genérica de imágenes, por Lubomir Bourdev y Hailin Jin.


  • in_place_factory, typed_in_place_factory: Construcción genérica de objetos con una variada lista de argumentos, por Fernando Cacciola.


  • operators: Clases e iteradores de plantillas aritméticas, por Dave Abrahams y Jeremy Siek.


  • property map: Conceptos que definen interfaces que mapean claves de objetos a valores de objetos, por Jeremy Siek.


  • static_assert: Aserciones estáticas (aserciones en tiempo de compilación), por John Maddock.


  • type_traits: Plantillas para las propiedades fundamentales de tipos, por John Maddock, Steve Cleary, ...



Metaprogramación de plantillas




  • function_types: Características de tipos para llamadas, construcción de tipos, por Tobias Schwinger.


  • fusion: Biblioteca para trabajar con tuplas, incluyendo varios contenedores, algoritmos, ... por Joel de Guzman, Dan Marsden y Tobias Schwinger.


  • mpl: Marco de plantillas de metaprogramación de algoritmos, secuencias y clases de metafunciones en tiempo de compilación, por Aleksey Gurtovoy.


  • proto: Biblioteca de plantillas de expresión y kit de herramientas del compilador de construcción de lenguajes específicos de dominio embebidos, por Eric Niebler.


  • static_assert: Aserciones estáticas (aserciones en tiempo de compilación), por John Maddock.


  • type_traits: Plantillas para las propiedades fundamentales de tipos, por John Maddock, Steve Cleary, ...



Metaprogramación de preprocesador



  • preprocessor: Herramientas de metaprogramación de preprocesador incluyendo repetición y recursión, por Vesa Karvonen y Paul Mensonides.


Programación Concurrente




  • asio: Redes portables y otros flujos de entrada/salida de bajo nivel, incluyendo sockets, temporizadores, resolución de host, flujos de sockets, puertos serie, descriptores de ficheros y manejadores de Windows, por Chris Kohlhoff.


  • interprocess: Memoria compartida, ficheros mapeados de memoria, exclusiones mutuas para compartir procesos, variables de condición, contenedores y asignadores, por Ion Gaztañaga.


  • MPI: Biblioteca de interfaz de paso de mensajes, para usar en la programación de aplicaciones paralelas, por Douglas Gregor y Matthias Troyer.


  • thread: Multihilos de C++ portable, por William Kempf.



Matemáticas y numéricos




  • accumulators: Marco para cálculos incrementales, y colección de acumuladores estadísticos, por Eric Niebler.


  • integer: Cabeceras para tratar con tipos enteros.


  • interval: Amplía las funciones aritméticas habituales a intervalos matemáticos, por Guillaume Melquiond, Hervé Brönnimann y Sylvain Pion.


  • math: Varias contribuciones en el ámbito de las matemáticas, por varios autores.


  • math/complex number algorithms: Algoritmos de números complejos que son las inversas de las funciones trigonométricas están actualmente presentes en el estándar de C++, por John Maddock.


  • math/common_factor: Máximo común divisor y mínimo común múltiple, por Daryle Walker.


  • math/octonion: Octoniones, por Hubert Holin.


  • math/quaternion: Cuaterniones, por Hubert Holin.


  • math/special_functions: Una amplia selección de funciones matemáticas especiales, por John Maddock, Paul Bristow, Hubert Holin y Xiaogang Zhang.


  • math/statistical distributions: Una amplia selección de distribuciones estadísticas univariantes y funciones que operan en ellos, por John Maddock y Paul Bristow.


  • multi_array: Contenedores multidimensionales y adaptadores para las matrices de datos contiguos, por Ron Garcia.


  • numeric/conversion: Conversiones numéricas optimizadas basadas en políticas, por Fernando.


  • operators: Plantillas e iteradores de clases de aritmética, por Dave Abrahams y Jeremy Siek.


  • random: Un sistema completo de generación de números aleatorios, por Jens Maurer.


  • rational: Clase de números racionales, por Paul Moore.


  • uBLAS: Álgebra lineal básica para matrices, por Joerg Walter y Mathias Koch.



Corrección y prueba




  • concept check: Herramientas para programación genérica, por Jeremy Siek.


  • static_assert: Aserciones estáticas (aserciones en tiempo de compilación), por John Maddock.


  • test: Soporte para testeo de programas simples, testeo unitario completo y monitorización de ejecución de programas, por Gennadiy Rozental.



Estructuras de datos




  • any: Contenedor genérico y seguro para valores individuales de diferentes tipos de valores, por Kevlin Henney.


  • bimap: Mapas bidireccionales, por Matias Capeletto.


  • compressed_pair: Optimización de miembro vacío, por John Maddock, Howard Hinnant, ...


  • fusion: Biblioteca para trabajar con tuplas, incluyendo varios contenedores, algoritmos, ... por Joel de Guzman, Dan Marsden y Tobias Schwinger.


  • multi_index: Contenedores con múltiples interfaces de acceso compatibles con la STL, por Joaquín M López Muñoz.


  • pointer container: Contenedores para el almacenamiento de objetos polimórficos acumulados para facilitar la programación orientada a objetos, por Thorsten Ottosen.


  • property tree: Estructura de árbol de datos especialmente utilizada para guardar datos de configuración, por Marcin Kalicinski y Sebastian Redl.


  • tuple: Definición de funciones que devuelven múltiples valores y más, por Jaakko Järvi.


  • uuid: Identificador único universal, por Andy Tompkins.


  • variant: Contenedor seguro, genérico, basado en pilas, por Eric Friedman y Itay Maman.



Procesamiento de imágenes



  • gil: Biblioteca genérica de imágenes, por Lubomir Bourdev y Hailin Jin.


Entrada/Salida




  • asio: Redes portables y otros flujos de entrada/salida de bajo nivel, incluyendo sockets, temporizadores, resolución de host, flujos de sockets, puertos serie, descriptores de ficheros y manejadores de Windows, por Chris Kohlhoff.


  • assign: Contenedores de llenado con datos constantes o generados, por Thorsten Ottosen.


  • format: Operaciones de formato de tipo seguro (similares a printf), por Samuel Krempp.


  • io state savers: Guardado del estado de entrada/salida para evitar datos desordenados, por Daryle Walker.


  • iostreams: Marco para flujos definidos, buffers de flujos y filtros de entrada/salida, por Jonathan Turkanis.


  • program_options: Acceso a los datos de configuración dados en la línea de comandos, en los ficheros de configuración u otras fuentes, por Vladimir Prus.


  • serialization: Serialización de datos arbitrarios para persistencia y clasificación, por Robert Ramey.



Soporte a otros lenguajes de programación



  • python: Refleja clases y funciones de C++ en Python, por Dave Abrahams.


Memoria




  • pool: Administración de bloques de memoria, por Steve Cleary.


  • smart_ptr: Plantillas para clases con punteros inteligentes, por Greg Colvin, Beman Dawes, Peter Dimov y Darin Adler.


  • utility: Clase noncopyable más plantillas de las funciones checked_delete(), checked_array_delete(), next(), prior(), más lenguaje a base de miembros, por Abrahams y others.



Análisis (parsing)



  • spirit: Marco analizador de LL que representa los analizadores directamente como gramáticas EBNF en funciones "inline" de C++, por Joel de Guzmán, Hartmut Kaiser, Nuffer Dan y su equipo.


Interfaces de programación




  • function: Envoltorios para llamadas diferidas o devoluciones de llamada, por Doug Gregor.


  • parameter: Funciones que aceptan argumentos por nombre, por David Abrahams y Daniel Wallin.



Miscelánea




  • base-from-member: Lenguaje para inicializar una clase base con un miembro, por Daryle Walker.


  • compressed_pair: Optimización de miembro vacío, por John Maddock, Howard Hinnant, ...


  • conversion: Conversores polimórficos y léxicos, por Dave Abrahams y Kevlin Henney.


  • crc: Código de redundancia cíclica, por Daryle Walker.


  • date_time: Biblioteca Fecha-Hora, por Jeff Garland.


  • exception: Una biblioteca para el transporte de datos arbitrarios en objetos de excepción, y el transporte de excepciones entre hilos (N2179, por Emil Dotchevski.


  • filesystem: Rutas portables, iteración sobre directorios, y otras operaciones útiles de sistemas de ficheros, por Beman Dawes.


  • flyweight: Diseño de patrones para gestionar grandes cantidades de objetos muy redundantes, por Joaquín M López Muñoz.


  • lexical_cast: Conversiones generales de texto literal, como un entero representado como una cadena, o viceversa, por Kevlin Henney.


  • numeric/conversion: Conversiones numéricas optimizadas, por Fernando Cacciola.


  • optional: Envoltorio para valores opcionales, por Fernando Cacciola.


  • program_options: Acceso a los datos de configuración dados en la línea de comandos, en los ficheros de configuración u otras fuentes, por Vladimir Prus.


  • scope_exit: Ejecutar código arbitrario al salir de ámbitos, por Alexander Nasonov.


  • statechart: Máquinas de estados finitos arbitrariamente compleja pueden ser implementadas en código C++ fácilmente comprensible y mantenible, por Andreas Huber.


  • swap: Funciones mejoradas de intercambio genérico, por José Gauterin.


  • system: Soporte de sistemas operativos, incluyendo el apoyo de diagnóstico que será parte de la biblioteca estándar C++0x, por Beman Dawes.


  • timer: Temporizador de eventos, contador de tiempo de progreso, clases de muestra de progreso, por Beman Dawes.


  • TR1: Una implementación del Informe Técnico sobre las extensiones de la Biblioteca C++, con otras bibliotecas Boost como base, por John Maddock.


  • tribool: Biblioteca de tipos lógicos de 3 estados, por Doug Gregor.


  • typeof: Emulación del operador typeof, por Arkadiy Vertleyb y Peder Holt.


  • units: Análisis dimensional y manipulación y conversión de unidad/cantidad, por Matthias Schabel y Steven Watanabe.


  • utility: Clase noncopyable más plantillas de las funciones checked_delete(), checked_array_delete(), next(), prior(), más lenguaje a base de miembros, por Abrahams y others.


  • value_initialized: Envoltorio para inicialización de valores de sintaxis uniforme, por Fernando Cacciola, basada en la idea original de David Abrahams.



Soluciones de "compilador roto"




  • compatibility: Ayuda para bibliotecas que no siguen el estándar, por Ralf Grosse-Kunstleve y Jens Maurer.


  • config: Ayuda a los programadores de bibliotecas boost a adaptarse a la idiosincrasia del compilador. No está destinada a usuarios de la biblioteca.



Bibliotecas retiradas de Boost



  • compose: Adaptadores para composición funcional para la STL, por Nicolai Josuttis. Eliminada en la versión 1.32. Utilizar Bind o Lambda en su lugar.


Referencias




  1. «Comunidad de Boost C++» (en inglés). Consultado el 15 de julio de 2010. «Although Boost was begun by members of the C++ Standards Committee Library Working Group, participation has expanded to include thousands of programmers from the C++ community at large.» 


  2. Boost Software License 1.0



Enlaces externos


  • Sitio web oficial de Boost



Popular posts from this blog

ORA-01691 (unable to extend lob segment) even though my tablespace has AUTOEXTEND onORA-01692: unable to...

Always On Availability groups resolving state after failover - Remote harden of transaction...

Circunscripción electoral de Guipúzcoa Referencias Menú de navegaciónLas claves del sistema electoral en...