The Boost C++ Libraries

Development Process

The development of the Boost libraries is only possible because individual developers and organizations vigorously support them. Because Boost only accepts libraries that solve existing problems, exhibit a convincing design, are developed using modern C++, and are documented in an understandable way, each Boost library has a lot of work behind it.

C++ developers can participate in the Boost community and propose new libraries. However, a lot of time and effort is required to convert an idea into a Boost library. Thus, it is vitally important to discuss requirements and possible solutions with other developers and potential users on the Boost mailing lists.

Besides new libraries, it is also possible to nominate existing C++ libraries for inclusion into Boost. However, because the requirements for these libraries are the same as for libraries explicitly developed for Boost, changes may be required before new libraries are accepted.

Whether or not a library gets accepted into Boost depends on the outcome of the review process. Developers of libraries can apply for a review, which usually takes about 10 days. During the review, other developers are asked to rate the library. Based on the number of positive and negative reviews, the review manager decides whether or not to accept the library into Boost. Since some reviewers may be seeing the proposed new library for the first time, it is not uncommon for modifications to be required.

If a library is rejected for technical reasons, it is still possible to revise the library and request a new review for an updated version. However, if the reason a library was rejected is because it does not solve any practical problem or because it provides an unconvincing solution to an existing problem, there is a good chance that it will be rejected in another review.

Because new libraries can be accepted at any time, a new version of the Boost libraries is released every three months. This makes sure that developers benefit from improvements in the Boost libraries regularly and promptly.

Note

This book is based on the Boost libraries 1.55.0 and 1.56.0. Version 1.55.0 was released in November 2013. Because the Boost community switched from Subversion to Git at the end of 2013 and needed time to adapt the release process, the next version, 1.56.0, was only released in August 2014. This happened two weeks before this book went into production. Since 1.55.0 was the latest version for nine months, this book is based on Boost 1.55.0. However, all examples have been tested with Boost 1.56.0, and all examples can be compiled with either Boost 1.55.0 or 1.56.0.