HOME

TheInfoList



OR:

Boost is a set of libraries for the C++ programming language that provides support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions, and
unit testing Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior. Unit testing describes tests that are run at the unit-level to contrast testing at the Integration ...
. It contains 164 individual libraries (as of version 1.76). All of the Boost libraries are licensed under the
Boost Software License Boost is a set of library (computing), libraries for the C++ programming language that provides support for tasks and structures such as linear algebra, pseudorandom number generator, pseudorandom number generation, multithreading, image proces ...
, designed to allow Boost to be used with both free and proprietary software projects. Many of Boost's founders are on the C++ standards committee, and several Boost libraries have been accepted for incorporation into the C++ Technical Report 1, the C++11 standard (e.g. smart pointers, thread, regex, random, ratio, tuple) and the C++17 standard (e.g. filesystem, any, optional, variant, string_view). The Boost community emerged around 1998, when the first version of the standard was released. It has grown continuously since then and now plays a big role in the standardization of C++. Even though there is no formal relationship between the Boost community and the standardization committee, some of the developers are active in both groups.


Design

The libraries are aimed at a wide range of C++ users and application domains. They range from general-purpose libraries like the smart pointer library, to
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
abstractions like ''Boost FileSystem'', to libraries primarily aimed at other library developers and advanced C++ users, like the template metaprogramming (MPL) and domain-specific language (DSL) creation (Proto). In order to ensure efficiency and flexibility, Boost makes extensive use of templates. Boost has been a source of extensive work and research into generic programming and metaprogramming in C++. Most Boost libraries are header based, consisting of
inline function In the C (programming language), C and C++ programming languages, an inline function is one qualified with the Keyword (computer programming), keyword inline; this serves two purposes: # It serves as a compiler directive that suggests (but doe ...
s and templates, and as such do not need to be built in advance of their use. Some Boost libraries coexist as independent libraries.


Associated people

The original founders of Boost that are still active in the community includes David Abrahams. An author of several books on C++, Nicolai Josuttis, contributed to the Boost array library in 2001. There are mailing lists devoted to Boost library use and library development, active .


License

Boost is licensed under its own free, open-source license, known as the Boost Software License. It is a permissive license in the style of the BSD license and the
MIT license The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility. Unl ...
, but without requiring attribution for redistribution in
binary form Binary form is a musical form in 2 related sections, both of which are usually repeated. Binary is also a structure used to choreograph dance. In music this is usually performed as A-A-B-B. Binary form was popular during the Baroque music, Baro ...
. The license has been OSI-approved since February 2008 and is considered a free software license, compatible with the GNU General Public License, by the Free Software Foundation.


See also

* Apache Portable Runtime – used by the
Apache HTTP Server The Apache HTTP Server ( ) is a free and open-source software, free and open-source cross-platform web server, released under the terms of Apache License, Apache License 2.0. It is developed and maintained by a community of developers under the ...
* GLib – the equivalent upon which GNOME is built * KDE Frameworks – the equivalent upon which KDE Software Compilation is built * List of C++ template libraries * Software using the Boost license (category) * Standard Template Library


References


Further reading

* * * * * * * *


External links

* {{Parallel computing C++ C++ libraries Data structures libraries and frameworks Free computer libraries Free software programmed in C++ Generic programming Software using the Boost license