C++ is a general purpose systems programming language.who is over 40 years old, having beendesigned in 1979. Far from losing traction, C++ is still near the top of severalprogramming language popularity indices.
Easing the way for the use of C++ is the broad support for the language among creators, editors, compilers, testing frameworks, code quality, and other IDE tools. Software developers also have many excellent libraries at their disposal to aid in the creation of C++ applications. Here are 12 that C++ developers trust.
active template library
From Microsoft, the Active Template Library (ATL) is a set of C++ classes for creating Common Object Model (COM) objects, with support for COM features such as dual interfaces, standard COM enumerator interfaces, endpoints, and ActiveX controls. available withVisual Studio IDE, ATL can be used to create single-threaded objects, apartment model objects, free-threaded model objects, or free-threaded and apartment model objects.
Asio C++ Library
OAsio C++ Libraryit is used for low-level I/O programming and networking, providing a consistent asynchronous model. Providing building blocks for concurrency, C++ networking, and other types of I/O, Asio has been used in applications ranging from smartphone apps and games to highly interactive websites and real-time transaction systems. Projects that use Asio include theWebSocketPP libraryIt's inDDT3 Remote Debuggerfor the Lua language. Asio is available as free open source under the Boost software license and is compatible with Linux, Windows, macOS, and FreeBSD.
Boost provides free, peer-reviewed, portable C++ source libraries that can be accessed fromimpulsar.org, which work with the C++ Standard Library. Boost libraries are designed to be used in a spectrum of applications. Among the collection are libraries for JSON, math, multiple indexes, file system, and geometry. Boost works on most modern operating systems, including Linux, Unix, and Windows. Linux and Unix distributions like Debian, Fedora, and NetBSD already include pre-built Boost packages.
Grisis an open source library for "creative coding" in C++. Useful for applications such as audio, computational geometry, graphics, and video, Cinder supports platform-native windowing and event handling along with I/O abstraction and has a built-in API for parsing XML and JSON. Designed around idiomaticC++ 11features like shared_ptr, the library comes with several examples. Cinder supports MacOS, iOS, Linux, Windows, and Windows UWP.
Teris a library of C++ models for linear algebra, including matrices, vectors, numerical solvers, and related algorithms. All array sizes are supported, from small, fixed arrays to arbitrarily large dense arrays. Algorithms are selected for their reliability. All standard numeric types are supported. For added speed, Eigen features expression templates to intelligently remove temperatures and allowlazy review. Available for free under Mozilla Public License 2 and can be downloaded fromOwn project page, Eigen was equipped with an API described by proponents as expressive, clean, and natural to C++ programmers. Eigen's test suite was run on many compilers to ensure reliability.
hoverX, or Float eXtended, is a header-only library for low-precision floating-point type emulation. Although natively supported by C++ compilers, FloatX can be called by other languages such as Python or Fortran. Floating-point types extend beyond the native single- and double-precision types. Template types are provided that allow the user to select the number of bits used for the exponent, as well as significant parts of the floating point number. FloatX builds on the idea of the FlexFloat library to emulate low-precision float types, but implements a superset of the FlexFloat functionality in C and provides C++ wrappers. FloatX came fromopen transprecision computinginitiative. It is freely available under the Apache 2.0 license.
OpenCV, or Open Source Computer Vision Library, is a computer vision and machine learning library natively written in C++ and available under an Apache 2 license. Machine in commercial products. With over 2,500 optimized algorithms for facial recognition, object detection, object classification, 3D model extraction, image search, and more, OpenCV has amassed a user community of over 47,000 people. available fromOpenCV project website, the library provides C++, Java, Python, and Matlab interfaces and is compatible with Windows, Linux, Android, and MacOS.CUDAmiOpen CLThe interfaces are under development.
Little C++ Libraries
Intended to simplify C++ development, theLittle (portable components) C++ Librariesare cross-platform C++ libraries for building Internet and network applications to run on systems ranging from desktops and servers to mobile devices and IoT. The libraries can also be used to build microservices with REST APIs for machine learning or data analysis. Poco's libraries are similar in concept to the Java class library, Microsoft's .NET Framework, or Apple Cocoa.
Developers can use Poco's libraries to build C++ application servers that talk to SQL, Redis, or MongoDB databases, or to build software for IoT devices that talk to cloud backends. Features of the libraries include a caching framework, HTML form handling, an FTP client for file transfer, and an HTTP client and server. Poco's libraries are freely available under the Boost software license andavailable for download on GitHub.
Velox is an embeddable vectorized runtime library for OLAP systems. The library is intended to optimize data processing systems and query engines. The project started as an internal engineering project at Facebook in 2020 and was later open sourced. In common usage scenarios, Velox takes a fully optimized query plan as input and performs the described calculation. Components include a high-level key system, a columnar memory module, feature packs, and network serializers.Velox is available on GitHubin the Facebook incubator repository.
Windows Template Library
Originating from Microsoft, theWindows Template Library(WTL) is (since 2004) an open source library for building lightweight Windows applications and user interface components. Positioned as an alternative to the Microsoft Foundation Classes toolkit, WTL extends ATL and provides a set of classes for controls, dialog boxes, window frames, and GDI objects.
Yocto/GL is a collection of small C++17 libraries for building physically based graphics algorithms. It is written in a data-driven style for ease of development and divided into small libraries for easy code navigation. Data is stored in simple structures and is accessed with free functions or directly.
Yocto/GL includes PCG random number generator code, boost
hash_combine, and external libraries in the public domain or included in their own licenses. Yocto/GL developers prefer a functional approach over an object-oriented one, favoring free functions over class methods. Functions and data are defined in sibling namespaces contained in the yocto namespace.
Yocto/GL is published under the MIT license and is available atGitHub. A C++17 compiler is required.
- Programming languages
- Software development
Paul Krill is editor-at-large at InfoWorld, whose coverage focuses on application development.
Derechos de autor © 2022 IDG Communications, Inc.
How to choose a low-code development platform