Adam Petersen - Software Development Pages, Book Reviews Section
Start News Articles Book Reviews

Book Review

Beyond the C++ Standard Library : An Introduction to Boost
by Björn Karlsson

ISBN: 0321133544
Publisher: Addision-Wesley Professional
Pages: 432

This may well be one of the most important C++ books of the last years. It doesn’t contain any groundbreaking ideas, but it will provide a very valuable increase in productivity for most readers and, even more important, hopefully increase the awareness of the Boost community. In the long run, this may mean improvements to the C++ language itself (Boost already contributes with several libraries to the TR1 proposed standard library and, at the time of writing, more libraries are proposed for the upcoming TR2).

I have been using Boost libraries for the last two years. Yet, already in the introduction where Björn briefly presents 58 (!) Boost libraries, I realized how much unnecessary code I have written over the years. Unnecessary, in the sense that the functionality I implemented already exists in the Boost libraries. Further, I believe that the quality of the Boost libraries with its system of peer-reviews is higher than what any single programmer can achieve. After reading this book I made a promise to myself to check out the news and libraries at much more frequently.

The book is an eye opener making the reader aware of the excellent Boost libraries, but it doesn’t stop there; the book is far more than a Boost tutorial. For example, Björn illustrates how Boost complements the standard library, he walks the reader through the creation of some simple functors that put event more power to the libraries and he demonstrates how Boost.Function can be used to implement a tight version of the design pattern Command.

I consider this book a ‘must have’ and I strongly recommend every intermediate to advanced C++ programmer to read it. A great strength of the book is that it focuses on the more generally applicable libraries, which means that the time invested to read the book will payoff almost immediately. For example, libraries such as Boost.Bind and Boost.Smart_ptr are likely to increase the quality of virtually all applications not using them before.

Reviewed October 2005

©2005 Adam Petersen