We all know that C++ isn’t perfect and Matthew Wilson aims to explain how to put it right. Matthew is an Australian but the text reads very much like the work of a parochial UK author – fine for us UK readers but what must the US market make of it? This book is as idiosyncratic as a west coast surfing or extreme sports text. It outlines the author’s views on how to program and how to best use C++ and is full of academic references and “knowing” quotes from other people’s work.

While the first few pages are gentle and persuasive, as soon as we get started you had better be a C++ expert to make anything of it. Templates and similar advanced features are used without any explanation and you either understand the examples or you don’t. The examples are more concerned with erudite philosophy and why you should be doing something rather than elucidating what you are doing. Even if you do understand everything you are left with an overwhelming feeling that perhaps C++ is just too flawed as a language to justify the extreme efforts that are being expended on saving it.

It puts you in mind of a TV series “when good languages go bad”. C was a good language in its time – a high level assembler – but C++ is perhaps best described as a low level object-oriented language. You can make it anything you want to make it and as such over all the language has no discipline.

This book is about instilling discipline into its practitioners when the fault lies in the language. If you are a C++ super expert and enthusiast then this is a book you will enjoy, but it isn’t for the general reader.