Boost (C libraries)

Boost ( english Boost C Libraries ) is a free C library, which consists of a variety of portable sub-libraries. The sub-libraries serve different tasks of algorithms on graphs via metaprogramming to memory management.

It may be proposed at any time new libraries for inclusion in Boost, but they must go through an elaborate review process. Parts of Boost have been in a so-called technical report ( technical report ) adopted the standardization committee for C and later integrated into the language C ( ISO / IEC 14882:2011 ).

Areas of application

Boost consists of sub-libraries for various purposes. They share the goal of increasing productivity when programming with C . In addition, should be portable and generally applicable Boost libraries. Otherwise, they are used in their entirety to any specific purpose.

The following topics are currently covered by Boost include:

  • Processing Strings and Text
  • Container
  • Iterators
  • Algorithms
  • Functors and functional programming
  • Generic programming
  • Template metaprogramming
  • Preprocessor metaprogramming
  • Concurrency
  • Mathematics and Numerical Analysis
  • Program correctness and testing
  • Data Structures
  • Input and Output
  • Interoperability with other programming languages
  • Memory management
  • Parsing
  • Programming interfaces
  • Workarounds for problems with broken compilers
  • Network support
  • Image processing

Development

The Boost project was originally founded in 2000 by members of the C standardization committee to make proposals for C extensions public and to test in practice. Meanwhile Boost is a large collection regardless of their relevance for the next C standard C libraries.

Also known commercial companies are contributing code and libraries, such as the graphics library GIL (Generic Image Library) by Adobe.

Some of the libraries have now been added binding in the C Library Technical Report 1 (TR1 ) already adopted and therefore can be found in the upcoming C standard again. Ten Boost libraries were thereby accepted by the C committee. In addition, ( a adoption by standards committee expansion of the coming C standards ) have been proposed some more Boost libraries for the proposed Technical Report 2.

Still in the community of active initiators of Boost include Beman Dawes and David Abrahams. The author of several books on C , Nicolai Josuttis, presented 2001 Boost.Array - library. About 3,000 people have registered in the Boost mailing lists, and a few dozen of them are regularly active.

Quality assurance

Addition of new libraries

Each new library to be included in Boost, a so-called review by the Boost community must undergo. It can be submitted by interested developers both reviews, as well as agreement or disagreement to be expressed. These are evaluated and have an influence on admission to the library. Through this process, a high level of quality is to be achieved, as they may find their way to the C standard.

Should be independent from the review process has a library that is part of Boost will include

  • Are in clarified copyright situation,
  • Specific license conditions meet ( it is recommended that Boost Software License)
  • Be of general use,
  • Be portable.

Also, the author must actively participate in the quality assurance process and formal things such as source code formatting or documentation must conform to agreed guidelines.

License Terms

To be part of Boost, a library must have a license that meets the following conditions:

  • It must be easily readable and understandable.
  • You must give each for any purpose (commercial and non- commercial) free copying, use and modification rights.
  • You must require that the validity of the license shall be given in each copy or modification of the software sources.
  • You may not require that the license for the generated executable or binary is specified.
  • You may not require that the source code is included in the generated executable or binary files.
  • You may restrict the use of the name and description of the library to the default version on the boost website.

As a result of these conditions, it is possible to use all Boost libraries without knowing the specific license. You can use Boost libraries in projects that are under a License with a copyleft clause, as well as in non-open source projects.

It is strongly recommended to access the Boost Software License, because it is a long-term goal to provide all the Boost libraries under a single license. De facto, it is unlikely that a library without Boost Software License is accepted.

Testing and maintenance

All the boost components are tested regularly on a variety of old and new compilers. It will be reviewed different things, like Compilierfähigkeit, functionality and completeness of the license information. The results are regularly announced on the Boost mailing list and published on the Boost website.

Boost contains its own testing framework, is the also tries to maintain the quality of the Boost libraries. This is structured loosely on maxims of Extreme Programming.

When the bugs Boost developers ask for message on one of the mailing lists or in boost own Trac, but preferably only after the notifier programmer has to check whether the error has been corrected in the current development version.

Test and maintaining Boost is complicated by the highly variable quality of the supported platforms, and compilers, which can be seen, among others, numerous variations and workarounds within the Boost code.

It is critical that some Boost libraries for a long time have received or receive no care, which can at least limit their suitability for modern applications.

Technology

Many parts of Boost make extensive use of templates, that is, generic programming and metaprogramming. This places high demands on the compliance of the compiler to be used. However, it is parallel attempts to circumvent so many compiler errors as possible. The developments also reveal limitations of the existing compiler and can thus lead to further proposals for the standardization of compilers and their conformity tests.

Pictures of Boost (C libraries)

138587
de