41 of 45 people found the following review helpful
4.0 out of 5 stars Good Reference, But Some Mistakes
I have had the Special Edition sitting on my shelf for the past 10 years. I have always relished it, just like K&R's "The C Programming Language". Even though I don't program in either language on a day-to-day basis, I find their contents invaluable examples of how to stay in-touch with the machine.
Bjarne went all out and rewrote a good bit of this book,...
Published 6 months ago by Travis Parks
7 of 9 people found the following review helpful
3.0 out of 5 stars Great Book - but Kindle edition incompatible with PC
Very readable, great resource . I am reading it in sequence, and still in the early "overview" part, but already learned/reinforced useful concepts.
Would be 5 stars except for problem with the Kindle edition: it is NOT compatible with windows 7 .
Published 2 months ago by Antoine Makhlouf
Most Helpful First | Newest First
41 of 45 people found the following review helpful
4.0 out of 5 stars Good Reference, But Some Mistakes,
This review is from: The C++ Programming Language, 4th Edition (Paperback)I have had the Special Edition sitting on my shelf for the past 10 years. I have always relished it, just like K&R's "The C Programming Language". Even though I don't program in either language on a day-to-day basis, I find their contents invaluable examples of how to stay in-touch with the machine.
Bjarne went all out and rewrote a good bit of this book, reusing some examples from the previous editions. I have been seeing entirely new and revised examples for the most part. I particularly like how he broke up some of the longer chapters from previous editions into more manageable parts. My only disappointment with this book are the little mistakes. Someone familiar with C++ should understand the intent, but it may confuse some. This book adds a LOT of new content and reorganized a lot of the previous content, so mistakes are understandable.
This book makes an excellent reference. I have already used it extensively to upgrade a personal project to C++11. This has been essential for replacing Boost libraries with the new standard library. If you are trying to play catch-up (like myself) it's definitely worth it. It explains move semantics, variadic templates, the new memory model and many of the new language features.
As with previous editions, not only is a good book for learning C++... it teaches a lot about good programming in general.
26 of 30 people found the following review helpful
5.0 out of 5 stars The 4th Edition: The Definitive Advanced Textbook For C++ 11 Professional Programmers, A La Kernighan & Ritchie For C!,
This review is from: The C++ Programming Language, 4th Edition (Paperback)Rather than reprise the strategy of the 3rd edition, an intermediate textbook that suited no-one, Bjarne Stroustrup has split his C++ textbooks into roles, "Programming Principles and Practice Using C++" an intermediate language primer for the programmer learning C++ programming at university, and this text "The C++ Programming Language" for the professional programmer, even for would be aspiring language lawyers!
There being way too many introductory C++ textbooks and primers on the market, this helps to fill the need for advanced textbooks too!
And, of necessity, a lot of explaining of the new C++ 11 features and the expanded C++ 11 STL.
Warning, to quote the author: "This book assumes its readers are programmers." The essential basics are dealt with in only a few pages, in order to give more pages to many an advanced topic. In its 1360 pages, more ground is covered than in most C++ texts. Whilst in some ways rather survey like, and short on detail, this book is terse and definitive and uses technical terms with precision. And given the authors involvement in the C++ 11 standardization process, one can be confident that the terms are used with precision!
And may I state my delight that vector bool being stored compactly remains a feature, though not implemented that way in any Microsoft compiler I ever tested ...
I'd recommend this text to third year computer science students and third year software engineering students. First and second year students would in my opinion be better off buying his other textbook, "Programming: Principles and Practice Using C++".
Whilst this text has the odd typo, these seem so few as to inspire hope that this will be a classic text for years to come ...
10 of 10 people found the following review helpful
5.0 out of 5 stars A significant rework of the 3rd edition,
This review is from: The C++ Programming Language, 4th Edition (Paperback)Apparently, I lucked out and got a decent book with decent shipping, as the quality of my copy is superb.
The C++ Programming Language (3rd Edition) and C++ in a Nutshell are my two primary go-to references for day-to-day C++ programming (and stackoverflow of course). As a primarily-embedded C/C++ programmer for over 25 years, I don't read books like this cover-to-cover. Instead, I bounce around the book to explore topics, gain deeper insight, or refresh my memory on some obscure corner of the language. Having done that now for over a month, I've come to like this new edition. Typography-wise, the 4th edition is easier on the eyes, with better use of whitespace, liberal use of navy blue for keywords and program examples, and more tables and graphics than in the previous edition. This may sound trivial, but it's not--I find the improved layout makes this edition much more accessible as a reference than the more densely-printed 3rd edition.
This edition is a significant rewrite from the 3rd edition. Obviously, it contains a lot of new material covering the C++11 additions to the language. As you would expect, there are entire new chapters on concurrency and threads and processes. However, there are also significant expansions of previous topics. For example, the discussion of the iostream 'locale' facilities occupied a little more than one page in the 3rd edition; in the 4th edition 'locale' gets an entire chapter of its own, with a much greater discussion of facets, money, and the like. Concepts like RAII are now covered in detail. Overall, my impression is that Mr. Stroustrup attempted to expand topics that are of increasing prominence today, and for the most part succeeded. In addition, one of my favorite parts of the older edition, Mr. Stroustrup's lists of programming advice at the end of each chapter, are still there, revised and expanded as necessary. Sadly, what is missing are the old 3rd edition chapters on Development and Design, and Design and Programming. Not only were these sort of a condensed Peopleware: Productive Projects and Teams (3rd Edition) that I enjoyed reading, they also allowed the word 'moron' to appear in the index of the 3rd edition--a word that is now gone from the index of the 4th edition, but still applicable on many product teams :-)
My only complaint with this new 4th edition is that it truly does represent C++ 'moving on'. There is no delineation in the text between C++11 additions and the earlier language constructs. As Mr. Stroustrup mentions in the intro, this is a deliberate choice on his part to present C++ as an "integrated whole, rather than as a layer cake". The old 3rd edition Appendix B "Compatibility" is now Chapter 44, "Compatibility", and the list of changes is presented there. I would have preferred that Mr. Stroustrup would at least have put margin bars in those places where C++11 changes occurred. Not everyone is running the latest GNU desktop compiler; in the embedded world in particular change comes slowly, and some of the C++11 changes are subtle enough that you might occasionally believe an example would work until the compiler informs you otherwise.
Overall, I consider this an excellent reference to C++, more accessible than the previous edition, updated with the latest techniques, and with better coverage of contemporary topics. That said, I also intend to keep my 3rd edition around for a while longer, as a lot of the sections pertaining to dealing with older compilers and interfacing with older libraries did not make it to this new edition. As management likes to say: 'let them eat (layer) cake'.
32 of 39 people found the following review helpful
4.0 out of 5 stars Great book, poor construction,
This review is from: The C++ Programming Language, 4th Edition (Paperback)I'm still early in the book itself, so I can't say much about the quality of content, except that I am impressed with what I've seen so far.
However, there is one glaring problem: this 1300 page tome simply isn't constructed to bear its own weight. I've just started working through it a few days ago and despite treating the book with great physical care, it is already falling apart. The binding (what little there is) was already detached upon arrival and chunks of pages are already in danger of falling out. It's going to need some ugly hot gluing action to have even a change of staying in one piece. A book of this size and weight simply needs to be better constructed.
15 of 18 people found the following review helpful
5.0 out of 5 stars Concerns about binding quality.,
This review is from: The C++ Programming Language, 4th Edition (Paperback)A number of people have complained about the quality of the physical book, such as the binding or the paper. My copy is just fine, but I can understand how other people have been disappointed.
I worked at a bricks-and-mortar bookstore for a number of years, and learned that quality control in the manufacturing of books is VERY uneven. Sometimes we'd get a shipment of a certain title, and they'd be great; but a week later we'd get another shipment of the same title, and bindings would be cracking even as we unpacked the boxes.
Publishers typically do not print their own books; rather they outsource that task to a printing company, sometimes a different company for each press run. As you can expect, some printers are better than others. Worse, sometimes printing gets re-outsourced, giving greater opportunity for foulups.
Another concern is that nearly all books produced since 1985 have pages that are glued in, rather than sewn. This makes the permanence of the binding very sensitive to the quality of the paper, the quality of the glue, the adjustment of the machinery, and of course the care of the workers. In my own library, I have some glued-together books that have stood up under decades of use; others have disintegrated in five years.
Caution: on the average, the binding quality of a hardcover book is no better than that of a softcover. So don't assume that paying more for a hardcover book will get you a better product.
Unfortunately, when you buy an ink-and-paper book, you don't know what you're going to get.
6 of 6 people found the following review helpful
5.0 out of 5 stars C++11 in full detail,
This review is from: The C++ Programming Language (hardcover) (4th Edition) (Hardcover)C++ Programming Language, 4th Edition is a very long book of 1346 pages and quite small print. It is a complete presentation of the C++11 programming language, including the standard library. I have owned over 500 technical books, and this is a very good presentation. If you are serious about C++11 programming, then I believe this book is essential for you to own. I recommend buying the hardcover version, because you will be referring to this book for many years into the future. The presentation is somewhat like a reference manual, but it goes much farther with detailed discussion on semantics. In the hands of a C++11 professional, this book will be invaluable. But please note this book is not written for novice programmers. It assumes you know how to program and presents the C++11 standard language and library succinctly. If you are an accomplished programmer in other languages and accomplished at assimilating information, then this book would be appropriate to consider. If you are a novice programmer, you should buy an introductory book on C++ and purchase this one once you have assimilated the fundamental concepts of C++.
The book presentation elaborates on the syntax and semantics of the language and library. And you get all the expert commentary you'd expect from Bjarne Stroustrup. But this is not a cookbook of code examples to accomplish specific tasks. It is entirely focused on how to effectively use the language and the library. There are problem sets for each chapter available online. And of course, you can find endless code examples using google as well. This book focuses entirely on the syntax and semantics of the language and library constructs. It does what it does very well, leaving the rest up to you. The book presentation also references the C++11 standard extensively, which is very helpful to someone needing more clarity. This book has proved to be exactly what I was hoping for when I purchased it. In my eyes, this book deserves a 5 star rating, with the caution it is not intended for programming novices.
5 of 5 people found the following review helpful
4.0 out of 5 stars Excellent - Language reference and writer's handbook, in one volume.,
This review is from: The C++ Programming Language, 4th Edition (Paperback)This book is for software engineers with some experience using C++; it is not a tutorial for novices.
The author describes the C++11 language in a level of precision that is worthy of the ISO standard itself, and complements that description with examples that highlight the points of interest without distraction. Simply put, this quality is exactly what someone familiar with Stroustrup's previous publications should expect.
Not only does the author describe what the language is, he also shares his insights on how to use the language well. In the third edition of this book, the final three chapters (Part IV: Design Using C++) contained an enlightening view of the "big picture" from a software engineer's perspective. In this new edition, this overview has been replaced with three new extraordinary chapters. Chapter 24 discusses generic programming, including the discovery and implementation of "concepts." Chapter 28 discusses template metaprogramming for compile-time execution. Finally, Chapter 29 presents the design and implementation of an extremely general matrix class, nicely combining the ideas previously encountered (including concepts and metaprogramming) into a coherent, useful example.
Other reviewers have made comments about the poor binding - my experience matches theirs.
6 of 7 people found the following review helpful
5.0 out of 5 stars A great book, poor constuction,
This review is from: The C++ Programming Language, 4th Edition (Paperback)This is for the 4th edition.
The book is great (that's why it has five stars). The problem is the physical (paper) book construction is of really poor quality.
The book is packed of information and Mr. Stroustrup style of writing is excellent. I find it an enjoyable read. It is to the point, with very good advices. I learned a lot from his other books too and this one is even more.
I returned the first one and got a replacement but it turned out to be just as bad. So, on top of being a huge book with a construction that won't hold with time, it was really of poor quality, like in binding, some pages were cut, etc.
I wish there is an electronic version of it in PDF, not in Kindle format though.
15 of 20 people found the following review helpful
4.0 out of 5 stars A gem wrapped in a turd,
This review is from: The C++ Programming Language, 4th Edition (Paperback)I doubt anyone is going to question the quality of the content in this book. Even with the errors it deserves 5 stars. My qualm is the quality of the book. When I buy a novel I don't care about the quality, as I'm going to read it and pass it on. When I buy a book like this, I want to refer to it and use it and have it sitting on my bookshelf for years, I want to enjoy opening it and feeling the pages and using the book every day. Unfortunately this book is terrible quality. I bought a dozen books along with this book, and some of them were much more affordable, but this book stands out as by far the cheapest, crappiest made book of the lot.
The edges are already bent and fraying, the Binding feels weak and flimsy, and the paper quality is very ordinary. The entire book is already warping, and has a wavy thing going on. As this is day one, I shudder to think of what this is going to look like after it's received some loving.
Next time charge me 10 or 20 more $ if you have to. Put the content in a book that matches its quality.
edit: I'm being a bit harsh here. It's not THAT bad. It's just disappointing considering the quality of the content.
3 of 3 people found the following review helpful
4.0 out of 5 stars A Nice Update for a Classic,
This review is from: The C++ Programming Language, 4th Edition (Paperback)I'm very pleased with the 4th addition update of The C++ Programming Language.
Dr. Stroustrup takes the approach of presenting the current version of the language (C++ 11) as a whole, rather than attempting to show what's new in C++ 11 compared to C++ 03. At approximately 1300 pages of text, it takes commitment to make it through the entirety of the content, but you'll most likely be a better programmer if you do.
If you've attempted to read previous versions and didn't like Stroustrup's approach, then you probably won't like the new edition either. On the other hand, if you appreciated the 3rd edition, you will probably like the 4th edition as well.
He presents the language in a rather terse style of writing with very short and fairly contrived examples, so it's probably not the best book for beginners. On the other hand, if you are already an intermediate to advanced C++ programmer, he explains a lot of the finer points very clearly. Some of the topics he addresses are difficult to find documented elsewhere. For example the precise type of literals -- 3, "foo", 4.0, 5.1f; internal vs external linkage; unnamed namespaces; etc. Since he invented the language and is a very active member of the standards committee, you can trust that the information is accurate.
One of the other things I like about this book is the fact that Stroustrup is wiling to editorialize just a bit and describe things that he considers to be ugly, embarrassing, or bad style. He manages to do this without ranting, which is really nice. He also gives advice about constructs to avoid and techniques to embrace.
Happy reading and good luck!
Most Helpful First | Newest First
The C++ Programming Language, 4th Edition by Bjarne Stroustrup (Paperback - May 19, 2013)