What are the advantages of using the C++ Boost libraries? [closed]
So, I've been reading through and it appears that the Boost libraries get used a lot in practice (not at my shop, though). Why is this? and what makes it so wonderful?
Boost is used so extensively because:
- It is open-source and peer-reviewed.
- It provides a wide range of platform agnostic functionality that STL missed.
- It is a complement to STL rather than a replacement.
- Many of Boost developers are on the C++ standard committee. In fact, many parts of Boost is considered to be included in the next C++ standard library.
- It is documented nicely.
- Its license allows inclusion in open-source and closed-source projects.
- Its features are not usually dependent on each other so you can link only the parts you require. [Luc Hermitte's comment]
From the home page:
"...one of the most highly regarded and expertly designed C++ library projects in the world." — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards
"Item 55: Familiarize yourself with Boost." — Scott Meyers, Effective C++, 3rd Ed.
"The obvious solution for most programmers is to use a library that provides an elegant and efficient platform independent to needed services. Examples are BOOST..." — Bjarne Stroustrup, Abstraction, libraries, and efficiency in C++
So, it's a range of widely used and accepted libraries, but why would you need it?
If you need:
- regex
- function binding
- lambda functions
- unit tests
- smart pointers
- noncopyable, optional
- serialization
- generic dates
- portable filesystem
- circular buffers
- config utils
- generic image library
- TR1
- threads
- uBLAS
and more when you code in C++, have a look at Boost.