boost Tutorial

What is Boost?

Boost is a large collection of free, high quality C++ libraries that cover a broad range of topics. It is often considered a “second standard library” for C++, since many common problems in C++ are solved by using Boost.

From boost.org:

Boost provides free peer-reviewed portable C++ source libraries.

We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.

Some Boost libraries have even made their way into the C++11 standard library, and some other, such as Boost.Optional and Boost.Variant, will be a part of C++17.

What can Boost do?

Boost covers most corners of programming. From the boost tag wiki here on Stack Overflow:

It includes libraries for:

  • String and text processing
  • Containers
  • Iterators
  • Algorithms
  • Function objects and higher-order programming
  • Generic Programming
  • Template Metaprogramming
  • Preprocessor Metaprogramming
  • Concurrent Programming
  • Math and numerics
  • Correctness and testing
  • Data structures
  • Image processing
  • Input/Output
  • Inter-language support
  • Memory
  • Parsing
  • Programming Interfaces
  • Miscellaneous
  • Broken compiler workarounds