REVIEW - Exceptional C++ - 47 Engineering Puzzles, Programming Problems, and Solutions


Title:

Exceptional C++

47 Engineering Puzzles, Programming Problems, and Solutions

Author:

Herb Sutter

ISBN:

Publisher:

Addison-Wesley Professional (2000)

Pages:

208pp

Reviewer:

Francis Glassborow

Reviewed:

February 2000

Rating:

★★★★★


I chose to make this a joint winner of 'FG's C/C++ Programming Book of 1999'.

This book should be reviewed in Overload because those that can read this book with benefit would also benefit from reading Overload. However I am going to publish a brief review here and then offer a review copy to anyone who will produce an in depth review for the next issue of Overload.

I have been long campaigning for publishers to develop a series of books on C++ analogous to the kind of series Contract Bridge players are used to (a mix including introductions for beginners and single topic books for those with some experience). At last Addison-Wesley has seen the wisdom of my idea, appointed Bjarne Stroustrup as series editor and set out to find suitable texts. One important criterion is that the books should, by programming standards, be short despite the series title of 'C++ In-Depth'.

This is the second book in the series to hit the bookshops (the first was Stan Lipmann's Essential C++ ) and its page count completely belies the amount of content. Herb Sutter has been running a series of problems in comp.lang.c++.moderated entitled 'Guru of the Week'. Each problem is set with the intention of deepening the understanding of both participants and spectators. Even the easier ones are tough. Before a problem is presented, Herb has a fully worked out solution (take both problem and solution in the widest sense, problems are often 'what can go wrong here' coupled with a full explanation of the hidden assumptions and dangerous presuppositions) After due time, often after Herb has had to prompt and cajole participants in the right direction he designates one (or sometimes more) as 'Guru of the Week' abbreviated as GotW and often pronounced 'Gotcha'. At the time of writing this review we are up to GotW 63 however this book presents 47 problems based on the first 30 (so many have been subdivided for the book).

You get best benefit by reading a problem and then going away to think about it. Even better would be to discuss it with colleagues. Do not cheat by reading Herb's 'solution' until you have thoroughly explored it for yourself (this is one of the problems with a book format, it is so tempting to cheat but by doing so youonly cheat yourself by losing much of the benefit gained by exercising your own mind).

Now, though I am publishing this review here I should warn you that this is not a book for those that only dabble with C++. Honesty forces me to say that such people will probably be bewildered by the solutions just as much as they are by the problems. In the Foreword Scott Meyers (of Effective C++ fame) admits that more than once he has been caught out by a GotW problem so this is a book that has something to offer World class experts, not that that is any reason why you should not give it a go.

I think I am reasonably free of bias (I know Herb pretty well) when I chose to make this a joint winner of 'FG's C/C++ Programming Book of 1999'. I look forward to more books from Herb's keyboard. By the way, he is one of the speakers at our JaCC Spring 2000 (March 24-25).


Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.