8 grandes bibliotecas para programación C ++

C ++ es un lenguaje de programación de sistemas de propósito general que ahora tiene más de 40 años y fue diseñado en 1979. Lejos de perder fuerza, C ++ todavía se ubica cerca de la cima de los índices de popularidad de múltiples lenguajes de programación.

Suavizar el camino hacia el uso de C ++ es un amplio soporte para el lenguaje entre los creadores de IDE, editores, compiladores, marcos de prueba, calidad de código y otras herramientas. Los desarrolladores de software también tienen a su disposición muchas bibliotecas excelentes para ayudar con la creación de aplicaciones C ++. Aquí hay ocho en los que confían los desarrolladores de C ++. 

Biblioteca de plantillas activas

De Microsoft, Active Template Library (ATL) es un conjunto de clases C ++ para construir objetos COM (Common Object Model), con soporte para características COM como interfaces duales, interfaces de enumerador COM estándar, puntos de conexión y controles ActiveX. Disponible con Visual Studio IDE, ATL se puede usar para crear objetos de un solo subproceso, objetos de modelo de apartamento, objetos de modelo de subproceso libre o objetos de modelo de apartamento y de subproceso libre.

Biblioteca de Asio C ++

La biblioteca Asio C ++ se utiliza para la programación de E / S de red y de bajo nivel, ofreciendo un modelo asíncrono consistente. Asio, que proporciona bloques de construcción básicos para la concurrencia, redes C ++ y otros tipos de E / S, se ha utilizado en aplicaciones que van desde juegos y aplicaciones para teléfonos inteligentes hasta sitios web altamente interactivos y sistemas de transacciones en tiempo real. Los proyectos que utilizan Asio incluyen la biblioteca WebSocketPP y el depurador remoto DDT3 para el lenguaje Lua. Asio está disponible como código abierto gratuito bajo la licencia de software Boost y es compatible con Linux, Windows, MacOS y FreeBSD.

Eigen

Eigen es una biblioteca de plantillas de C ++ para álgebra lineal, que incluye matrices, vectores, solucionadores numéricos y algoritmos relacionados. Se admiten todos los tamaños de matriz, desde matrices pequeñas y fijas hasta matrices densas arbitrariamente grandes. Los algoritmos se seleccionan por su confiabilidad. Se admiten todos los tipos numéricos estándar. Para mayor velocidad, Eigen presenta plantillas de expresión para eliminar de manera inteligente los temporales y permitir una evaluación perezosa. Disponible gratuitamente bajo la Licencia Pública de Mozilla 2 y descargable desde la página del proyecto Eigen, Eigen ha sido equipado con una API descrita por los proponentes como expresiva, limpia y natural para los programadores de C ++. El conjunto de pruebas de Eigen se ha ejecutado con muchos compiladores para garantizar la fiabilidad.

FloatX

FloatX, o Float eXtended, es una biblioteca de solo encabezado para emulación de tipo de punto flotante de baja precisión. Aunque es compatible de forma nativa con compiladores de C ++, FloatX puede ser llamado por otros lenguajes como Python o Fortran. Los tipos de coma flotante se extienden más allá de los tipos nativos de precisión simple y doble. Se proporcionan tipos de plantilla que permiten al usuario seleccionar el número de bits utilizados para el exponente, así como las partes significativas del número de coma flotante. FloatX se basa en la idea de la biblioteca FlexFloat para emular tipos flotantes de precisión reducida, pero implementa un superconjunto de funcionalidad FlexFloat en C y proporciona envoltorios C ++. FloatX surgió de la iniciativa Open Transprecision Computing. Está disponible de forma gratuita bajo la licencia Apache 2.0. 

OpenCV

OpenCV, o Open Source Computer Vision Library, es una biblioteca de visión artificial y aprendizaje automático escrita de forma nativa en C ++ y disponible bajo una licencia BSD. OpenCV se creó para proporcionar una infraestructura común para aplicaciones de visión por computadora y acelerar el uso de la percepción de la máquina en productos comerciales. Más de 2500 algoritmos optimizados para reconocimiento facial, detección de objetos, clasificación de objetos, extracción de modelos 3D, búsqueda de imágenes y mucho más, OpenCV ha acumulado una comunidad de usuarios de más de 47,000 personas. Disponible en el sitio web del proyecto OpenCV, la biblioteca proporciona interfaces C ++, Java, Python y Matlab y es compatible con Windows, Linux, Android y MacOS. Las interfaces CUDA y OpenCL están en desarrollo.

Bibliotecas Poco C ++

Con el objetivo de simplificar el desarrollo de C ++, las bibliotecas de C ++ de Poco (componentes portátiles) son bibliotecas de C ++ multiplataforma para crear aplicaciones de red e Internet que se ejecuten en sistemas que van desde computadoras de escritorio y servidores hasta dispositivos móviles y de IoT. Las bibliotecas también se pueden utilizar para crear microservicios con API REST para aprendizaje automático o análisis de datos. Las bibliotecas de Poco son similares en concepto a la biblioteca de clases de Java, .NET Framework de Microsoft o Apple Cocoa.

Los desarrolladores pueden usar las bibliotecas de Poco para crear servidores de aplicaciones en C ++ que se comuniquen con bases de datos SQL, Redis o MongoDB, o para crear software para dispositivos IoT que se comuniquen con back-end en la nube. Entre las características de las bibliotecas se encuentran un marco de caché, manejo de formularios HTML, un cliente FTP para transferir archivos y un servidor y cliente HTTP. Las bibliotecas de Poco están disponibles de forma gratuita bajo la licencia de software Boost y se pueden descargar desde GitHub. 

Biblioteca de plantillas de Windows

Originaria de Microsoft, la biblioteca de plantillas de Windows (WTL) es (desde 2004) una biblioteca de código abierto para crear aplicaciones ligeras de Windows y componentes de interfaz de usuario. Posicionado como una alternativa al kit de herramientas de Microsoft Foundation Classes, WTL extiende ATL y proporciona un conjunto de clases para controles, cuadros de diálogo, ventanas de marco y objetos GDI.

Peso

Wt es una biblioteca de GUI web en C ++ moderno que permite a los desarrolladores crear interfaces de usuario web interactivas con widgets, sin tener que escribir JavaScript. Una solución del lado del servidor, Wt solicita manejo y renderizado de páginas, proporcionando seguridad incorporada, renderizado de PDF, un sistema de pintura 2D y 3D, una biblioteca de mapas relacionales de objetos, una biblioteca de gráficos y un marco de autenticación. La biblioteca principal es de código abierto y proporciona un marco híbrido de una sola página que se puede implementar en Linux, Unix o Windows.

Desarrollado por la empresa de ingeniería de software Emweb, Wt es compatible con navegadores HTML5 y HTML4, así como con agentes de usuario HTML sin formato. Y Wt puede integrarse con bibliotecas de JavaScript de terceros. Con Wt, una aplicación se define como una jerarquía de widgets, que van desde widgets genéricos, como botones pulsadores, hasta widgets especializados, como un widget de blog completo. El árbol de widgets se representa como HTML / JavaScript en el navegador. Se puede descargar de la página web del proyecto. Están disponibles términos de uso comercial y de código abierto.