C++ Coding Standards: 101 Rules, Guidelines, and Best Pra... and over one million other books are available for Amazon Kindle. Learn more
CDN$ 36.53
  • List Price: CDN$ 57.99
  • You Save: CDN$ 21.46 (37%)
Only 1 left in stock (more on the way).
Ships from and sold by Amazon.ca.
Gift-wrap available.
Add to Cart
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

C++ Coding Standards: 101 Rules, Guidelines, and Best Practices Paperback – Oct 25 2004

Amazon Price New from Used from
Kindle Edition
"Please retry"
"Please retry"
CDN$ 36.53
CDN$ 33.07 CDN$ 30.00

Join Amazon Student in Canada

Frequently Bought Together

C++ Coding Standards: 101 Rules, Guidelines, and Best Practices + Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions + Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)
Price For All Three: CDN$ 102.03

Show availability and shipping details

Customers Who Bought This Item Also Bought


Product Details

  • Paperback: 240 pages
  • Publisher: Addison-Wesley Professional; 1 edition (Oct. 25 2004)
  • Language: English
  • ISBN-10: 0321113586
  • ISBN-13: 978-0321113580
  • Product Dimensions: 24 x 19 x 1 cm
  • Shipping Weight: 499 g
  • Average Customer Review: 3.5 out of 5 stars  See all reviews (2 customer reviews)
  • Amazon Bestsellers Rank: #158,001 in Books (See Top 100 in Books)
  • See Complete Table of Contents

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

3.5 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See both customer reviews
Share your thoughts with other customers

Most helpful customer reviews

1 of 2 people found the following review helpful By Olivier Langlois on May 8 2007
Format: Paperback
I had high expectations about the fruit of the association of 2 authors that I appreciate but the result did not meet these expectations. Basically this book provides 101 rules or guidelines that you can get for free by looking at the table of content. Each of these rules is then followed by a very short explanation (1 or 2 pages usually). In my opinion, most of them are commun wisdom that you can get from other sources. This is it. That is all you will get from this book. For that reason, I recommand to skip this one except if a convenient and compact collection of commun knowledge is something that you are looking for.
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again.
1 of 2 people found the following review helpful By Adaera on April 6 2005
Format: Paperback
Befittingly named, C++ Coding Standards is the perfect book to show you how professional code should be constructed and gives a standard to your C++ coding. This book is great for a solitary coder, but seems most suited to a team of programmers as it gives a set protocol for commenting code, updating, and more.
Many people may have found that coding alone can be a slow process which lets you overlook mistakes that a team would normaly notice. Such mistakes could lead to very major security holes, or just a disliked product from you and/or your company. The thought is more than one programmer, a team of programmers must certainly be faster and more effecient.
This is however not always the case since in a team. If there is inadequate communication, a few people may try and code the same thing at once or it may not be clear who's supposed to update the code into one large updated project with each member's new code additions. Or what if some of the members didnt comment their code? C++ Coding Standards is the perfect book for co-ordinating an aimless mass of coders into a clean, profficient, powerful, programming machine.
This book will take some of the most simple to the more advanced strategies of making your team a "Team" by using many different strategies. Throughout the book you are not required to attempt any of the suggestions in the book, as they were careful to word things in such a manner as "Consider X..." instead of "Do X...". The suggestions and guidelines that you find in C++ Coding standards have been used in many published works, which you are given examples of in the book. If you are looking to organize, motivate, and kickstart your team onto the path of success and haste, I suggest this book as a very good starting point.
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again.

Most Helpful Customer Reviews on Amazon.com (beta)

Amazon.com: 35 reviews
38 of 38 people found the following review helpful
Finally, a coding standard that programmers can accept. Nov. 22 2004
By Amazon Customer - Published on Amazon.com
Format: Paperback
For many programmers, the term "coding standard" generates a gut-level response. We all know that someone is going to be pushing the "one, true brace style" or the "proper" way to indent code. This subject is probably the best way to generate instantaneous rebellion among a group of programmers.

The first "standard" in "C++ Coding Standards" wipes all of that away with their first rule:

0. Don't sweat the small stuff. (Or: know what not to standardize.)

In one quick entry, Sutter and Alexandrescu sweep all of the indent-level, brace-placement, CamelCase/underscores holy wars into a single category and give a useful bit of advice: <em>Be consistent.</em> The authors point out that any professional programmer should be able to read and write in any of these styles. The differences are basically a matter of personal preference.

From this point on, we get to see a coding standard that is focused on "best practices" and proven techniques for improving code.

This is the only coding standard I've ever seen that would really help a group of programmers improve their work.
48 of 52 people found the following review helpful
Higher level than Effective C++ Nov. 19 2004
By Jack D. Herrington - Published on Amazon.com
Format: Paperback
I love both this book and Effective C++ for different reasons. The Effective C++ series is mainly very low level hints that help you avoid the pitfalls that C++ has in store for you. This book, while showing a lot of code, gives a higher level perspective of the areas it covers (e.g. templates, STL, class design, namespaces, etc.). That perspective grounds you in an understanding of the topic, then binds that to some real world code examples. Both approaches are very valuable. I would recommend getting both books. You can't live without the practical advice of Effective C++ or the architectural material in C++ Coding Standards.
58 of 64 people found the following review helpful
A Thirty Five Dollar Index of Classic C++ Books May 1 2005
By Karl Rosaen - Published on Amazon.com
Format: Paperback
Sutter and Alexandrescu are certified C++ gurus, and have each written classic works on C++ (Exceptional C++ series, and Modern C++ Design, respectively). So why does this book fall short? Because it doesn't go into the level of detail necessary to make every recommendation meaningful, and instead relies on citations of previous works. And those citations very often fall into a handful of books that every serious C++ programmer should own and understand anyway: Effective C++ series by Scott Meyers, The C++ Programming Language by Bjarne Strousup, and Exceptional C++ by Sutter.

One might argue that 5 books or more is too many, and that this book adds value by providing a one stop ultimate resource for best practices. The problem is that if proper justification isn't provided for each best practice, it's difficult for readers to internalize them. Even if these guys are experts, and a, "trust me" will suffice to believe what they say, it doesn't mean that everyone will understand what they say without diving into the other books that they so often reference. And that brings us back to my main point: you may as well just buy and read the original books in the first place.

Many of the items are complete repeats of items from Scott Meyers books with much less explanation. For example, number 81 of best practices, 'Prefer range operations to single-element operations', is the same as item 5 in 'Effective STL'. However, in Coding Standards, a page is devoted to the explanation; not sufficient if you don't already fully understand why this is a good practice. Meyers, on the other hand, spends 8 pages fully convincing you it is a good idea with several examples. After reading Meyers, I'm going to understand and remember the practice of preferring range member functions.

If you already own all of Scott Meyer's books, along with some of Sutter's and want a concise summary of coding practices, this book may be worth while. Otherwise, start with the original works.
89 of 109 people found the following review helpful
Many good ideas Nov. 16 2004
By Brent A. Thale - Published on Amazon.com
Format: Paperback Verified Purchase
I have great respect for both authors from reading their other books/articles, and there are many good ideas in this book, but I was expecting to agree with the authors here much more than I do.

Item 0: Don't sweat the small stuff. The authors say not to overlegislate naming and bracing standards, but they also say "do be consistent" and don't mix styles. From personal experience, I can say the only way to get a group of programmers to be consistent is by "sweating the small stuff" and having well-defined policies that are strictly enforced.

Item 1: Zero tolerance of warnings. Eliminating Level 4 warnings (in Visual C++) from a complex application (as opposed to a library intended for third-party use) is more trouble than it's worth. The authors' suggestion to decrease code readability (Examples 2 and 3) to get around these warnings is quite a bad idea, in my opinion.

Item 59: I wish somehow there could be a better answer to the C++ namespace issue. Giving many symbols (but not all, like preprocessor macros, classes not in a namespace, etc.) two names (the qualified and the unqualified) based on where that symbol appears seems so wrong and at the very least makes searching and cut-and-pasting more difficult.

The authors clearly prefer use of stl over custom containers (although they have not always followed their own advice), but they don't address many issues related to this, like are teams using stl supposed to use the peculiar stl naming practices across the board in all code, so stl dictates naming and all projects would use naming like some_stl_vector.push_back()? Or would code like m_object.DoSomething() be mixed together with the above statement so there really is no standard? What are programmers to do when the stl containers don't cut it and a custom container is needed? Should they write it in the stl idiom or consistent with their own naming standard?

Many of the examples refer to std::string, and even a few use const char *, in a book like this I would prefer not to see uses of these types that are not localization-friendly, since it is a best practices type of book, after all.

The book's proofreaders are very good but I believe they missed one error on Item 61, page 112, near the bottom: "Do not definite..." I'm assuming should be "Do not define..."

Anyway, I do recommend this book, and I do agree with most of the items, the authors raise many good points to consider when a team is deciding on its own coding standard.
12 of 12 people found the following review helpful
Guidelines for real developers Nov. 22 2004
By Allan Clarke - Published on Amazon.com
Format: Paperback
Herb Sutter and Andrei Alexandrescu have been long time contributors to the C++ community, so every time I see their names on a book, I expect to be challenged in how I think about developing software - I always have high expectations.

When I originally saw this book's title, I was thinking that the subject would be primarily about coding conventions. This is an area of interest to me, as I have 20+ years experience in software development and have set up our company's C++ coding conventions.

However, once I saw the table of contents, I realized that this would have a bit more depth than a coding convention. I think that this book is mis-titled; it ought to be "101 C++ Guidelines and Best Practices".

There is a distinction between coding conventions and "guidelines and best practices." Coding conventions that I have seen tend to delve into code micromanagement, usually for business rather than technical reasons (i.e., being able to more easily swap developers around).

The authors address this indirectly with the first item: "0. Don't sweat the small stuff. (Or: know what not to standardize)" (Note the bit of C++ humor in starting the numbering at 0!) In this item, the authors dispatch the notion of "stylistic issues" and focus for the remainder of the book on practical technical advice.

The areas that these guidelines cover include: Organizational and Policy Issues; Design Style; Coding Style; Functions and Operators; Design and Inheritance; Construction, Destruction, and Copying; Namespaces and Modules; Templates and Genericity; Error Handling and Exceptions; STL: Containers; STL: Algorithms; and Type Safety. I would strongly urge you to obtain a detailed breakout of the table of contents to help evaluate the appropriateness of this book to you (see [...]

The authors assert that this book is for the whole spectrum of developers, beginners through advanced. For the most part, I agree with them. The biggest challenge with this subject matter is that those developers who have not been "burned" in the past will not always appreciate the wisdom espoused in these items. Take heed when they say that a lesson has been learned through "bitter experience."

Although there are 101 items in this book, I think there are one or two that are weak. One in particular, "99. Don't use invalid objects. Don't use unsafe functions," seems to address issues that should be obvious to even beginners.

On the other end of the spectrum, there are a couple of items whose efficacy is debatable. Consider item 39, "Consider making virtual functions non-public, and public functions non-virtual." I have seen the arguments for this design technique argued many times in the comp.lang.c++ group. I understand all the arguments in its favor, but personally have not yet put this into practice.

In the middle of these extremes are 97 or 98 very useful pieces of advice. As technical books tend to be expensive, most of us need to be choosey. This is one book that will pay back its cost many times over.

Product Images from Customers