After a protracted journey through the second edition of Nicolai Josuttis’s The C++ Standard Library, my work group has started reading O’Reilly’s Intel Threading Building Blocks book (written by Intel’s James Reinders). I’m under no impressions that it will be perfect, and we will be reading the errata along with the book. Furthermore, a lot has changed since 2007 when the book was published and the first version of the library was released. Nevertheless, we use this high-level library in enough of our image processing code that it behooves us to know more about it. Plus, we’ve already planned to augment our reading with an examination of our own use of and extensions to TBB, as well as some of the basics of concurrency. I’m hopeful that the nine-or-so of us in the group get some mileage out of it.
At just twelve chapters and fewer than 300 pages, we should be done m-u-c-h sooner than with the Josuttis book. What to read after that? It will be a group decision, but I’m really hoping for A Tour of C++ by Bjarne Stroustrup.
In a post on the C++ ISO standard body’s blog, Stroustrup tells why he wrote this book when he already has written four editions of the more definitive C++ Programming Language.
It gradually dawned on me that [while preparing introductory slides for a graduate course] I just might have produced a solution to a decades-old problem for C++:
What is the basic knowledge that we should be able to assume from a competent C++ programmer?
Competent C programmers can be assumed to know roughly what is covered by K&R. Conversely, if they don’t—or haven’t even heard of K&R—it is a good guess that they can’t be relied on to contribute viable C code. I find that I cannot make an equivalent statement about C++ programmers. . . . We—the huge and diverse C++ communities—do not share a body of basic understanding. This is bad; very bad! We don’t have a shared view of what good C++ code is and we don’t communicate effectively.
Having such a shared view and being able to communicate about it seems like a good thing for my team, which contains a mix of backgrounds and expertise. I know I’ll learn some good stuff from reading it.