REVIEW - Beyond the C++ Standard Library - An Introduction to Boost


Beyond the C++ Standard Library

An Introduction to Boost


Björn Karlsson



Addison-Wesley Professional (2006)




Pete Goodliffe


December 2006



The Boost libraries have become increasing important for C++ programmers, especially as many of their libraries have been adopted into the "tr1" standard extension and are slated for inclusion in the next revision of the C++ standard.

Karlsson's book acts as as a tutorial and reference to some of the basic Boost libraries. These days Boost is far too large to cover comprehensively in a single volume (indeed, some of the larger Boost libraries have entire books to themselves). So the author picks the most immediately useful and applicable parts of Boost (you can't really call them the "most important" libraries, though). This is clearly a somewhat arbitrary choice, but it has been made well.

The book covers Boost's smart_ptr, conversion, operators, regex, any, variant, tuple, bind, lamda, function and signals libraries. On the whole the discussion is clear and well thought out. The regex coverage is not as clear or deep as in Pete Becker's "The C++ Standard Library Extensions".

Every so often Karlsson mixes in some interesting side notes or describes an advanced C++ idiom within a chapter's description of a Boost library. It is a shame that more was not made of this. These parts could have been formatted differently, put in sidebars, or separated visually somehow to make them stand out. Overall I find the presentation of the book a little odd and hard to read (and sometimes inconsistently applied).

In a book released in 2006, I'd like to see more mention of what's in tr1. It is mentioned briefly in the preface and noted in passing in library descriptions (and not at all in the index).

It's inevitable that many of the libraries Karlsson has chosen have been incorporated into C++'s tr1 (and pretty soon into an official revision of the standard itself). This book will date as the preferred versions become the standard library implementations, rather than the deprecated Boost versions.

It also seems slightly strange that mention of Boost is relegated to the book's subtitle rather than in it's main title. Nevertheless, this is a useful and important book, and a great introduction to the magic of Boost.

Book cover image courtesy of Open Library.