20 June 2009

Boost C++ Libraries: Changing the face of C++

We have been using Boost C++ libraries (Boost Wikipedia) in our Monte Carlo Application ToolKit (MCATK) software effort. Though we had heard of it for awhile, we had not investigated it.

Thanks to a Scott Meyer's talk at SDWest 2008, one of the team decided it was worth investigating and found there were several boost libraries that could be useful and help simplify our design.

Several Boost libraries have been accepted for incorporation into both the Technical Report 1 (TR1) and C++0x. Scott Meyer's list of the five most important C++ software includes Boost and Scott has a training course for TR1 and Boost.

Quotes from the Boost 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++


A few of the boost libraries that MCATK make use of:

boost::function
boost::bind
boost::signal
boost::mpi
boost::serialization
boost::filesystem
boost::shared_pointer
boost::array


It has changed how we think about using C++ and development.

No comments: