Boost is a set of
libraries for the
C++ programming language that provides support for tasks and structures such as
linear algebra
Linear algebra is the branch of mathematics concerning linear equations such as:
:a_1x_1+\cdots +a_nx_n=b,
linear maps such as:
:(x_1, \ldots, x_n) \mapsto a_1x_1+\cdots +a_nx_n,
and their representations in vector spaces and through matrice ...
,
pseudorandom number generation, multithreading,
image processing,
regular expressions, and
unit testing. It contains 164 individual libraries (as of version 1.76).
All of the Boost libraries are
licensed under the
Boost Software License, designed to allow Boost to be used with both
free and
proprietary software
Proprietary software is software that is deemed within the free and open-source software to be non-free because its creator, publisher, or other rightsholder or rightsholder partner exercises a legal monopoly afforded by modern copyright and i ...
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
C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''.
History
"C" ...
, the
C++11 C11, C.XI, C-11 or C.11 may refer to:
Transport
* C-11 Fleetster, a 1920s American light transport aircraft for use of the United States Assistant Secretary of War
* Fokker C.XI, a 1935 Dutch reconnaissance seaplane
* LET C-11, a license-build ...
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, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
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 functions 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
An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions. This allows end users and commercial com ...
, known as the Boost Software License. It is a permissive license in the style of the
BSD license and the
MIT license, but without requiring
attribution for redistribution in
binary form. The license has been
OSI-approved since February 2008
and is considered a
free software license,
compatible with the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
, by the
Free Software Foundation
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985, to support the free software movement, with the organization's preference for software being distributed under copyleft ( ...
.
See also
*
Apache Portable Runtime – used by the
Apache HTTP Server
The Apache HTTP Server ( ) is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. Apache is developed and maintained by an open community of developers under the auspices of the Apache S ...
*
GLib
GLib is a bundle of three (formerly five) low-level system libraries written in C and developed mainly by GNOME. GLib's code was separated from GTK, so it can be used by software other than GNOME and has been developed in parallel ever s ...
– the equivalent upon which
GNOME is built
*
KDE Frameworks – the equivalent upon which
KDE Software Compilation
The KDE Software Compilation (KDE SC) was an umbrella term for the desktop environment plus a range of included applications produced by KDE. From its 1.0 release in July 1998 until the release of version 4.4 in February 2010, the Software Comp ...
is built
*
List of C++ template libraries
A ''list'' is any set of items in a row. List or lists may also refer to:
People
* List (surname)
Organizations
* List College, an undergraduate division of the Jewish Theological Seminary of America
* SC Germania List, German rugby union ...
*
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