I’ve just finished re-reading (I’ve read if for the first time around 2000) this fantastic book which was written by Bjarne Stroustrup, who is the responsible for the design of C++. I haven’t used C++ professionally for over 6 years now! However, I’ve always been fascinated for its power and complexity and I do intend to start using it again really soon (btw, my first professional gig as a dev consisted in writing C++ code and that’s probably why I’ve got some affection for the language).
One of the reasons I enjoy this kind of book is because I’m always curious to understand why option A was preferred over B for a specific feature. And Bjarne does an excellent work on that area with this book. He goes all the way back to the roots of C++ (I’m too young to remember it being called C with classes) and explains all the rationale that is behind all the major decisions taken during C++ design and evolution. If you’re looking for a book that teaches you how to program with C++, then this isn’t really for you. However, if you’re puzzled about some C++ feature or if you think that something shouldn’t really work the way it does, then this book is for you (I’m positive that you’ll see that your idea wouldn’t really work in some specific scenario which gets used by 0.05% of the guys that use C++ ,,).
My score: 9/10.