People keep asking me where to find good information on C++11. Until now I’ve had to point them to blogs, and say that we’re all working on revising our books but it’ll take a while. It’s been an unsatisfying answer.
Finally I have a C++11 “book” I can direct people to: Today Scott Meyers announced that his fully-annotated C++11 training materials are now up-to-date with the final published standard.
This is the best overview of C++11 available today, and it’s good:
Presentation Materials: Overview of the New C++ (C++11)
by Scott MeyersPDF $29.95
…
The PDF you’ll get is an exact snapshot of Scott’s full-color training materials on the day he generates the PDF. You’ll get not only the slides Scott shows in class, you’ll also get the accompanying notes—the very ones Scott uses. To see exactly what you’ll get you can view a free sample.
…
Specification of the new version of C++ (“C++11”) is finally complete, and many compilers (e.g., Visual C++ and Gnu C++) already offer many features from the revised language. And such features! auto-declared variables reduce typing drudgery and syntactic noise; Unicode and threading support address important functionality gaps; and rvalue references and variadic templates facilitate the creation of more efficient, more flexible libraries. The standard library gains resource-managing smart pointers, new containers, additional algorithms, support for regular expressions, and more. Altogether, C++11 offers much more than “old” C++. This intensively technical seminar introduces the most important new features in C++11 and explains how to get the most out of them.
I like Scott’s terms: Free updates for life, including major revisions, so it’ll never be out of date. DRM-free, so that you can copy, annotate, and print as you like.
If you want to know about C++11, invest the $30. You won’t regret it.
Disclaimer: I have no financial interest in recommending Scott’s materials. I just think they’re excellent and everyone should know about them.
I have a MEAP copy (the paper book is currently scheduled for December publication), and I wholeheartedly recommend the book. Bear in mind that it’s not on C++11 in general, it’s on the C++11 threading API and how to use it. That’s a huge topic, and it certainly deserves a book of its own.
Scott
Scott tnx for the reply. First of all my complaints about it being overview and not a book werent real complaints, they were more a “I prefer”… Regarding C++ Concurrency in Action problem is that book is not out , but it it has MEAP so I might buy it. I know that the autor is mainteiner of boost::thread, so I guess book is very good.
@Ivan: If you’re looking for a publication to explain something in detail, you’re unlikely to be satisfied with anything with “Overview” in the title, and the title of the materials is “Overview of the New C++.” For example, slide 20 is the complete treatment of ” >>” as a nested template closer, and slides 21-25 is the complete treatment of auto. The comments at the bottom of slide 22 are, I think, representative of the kinds of things I tend to comment on in the notes, and I think you’ll be hard-pressed to find any other treatment of auto that will explain how its type deduction differs from that for template parameters or that declaring something of type auto&& may not yield an rvalue reference.
Regarding the treatment of std::atomics, the notes mention them and use them (with default sequential consistency) in a couple of examples, and that’s it. For that topic (as well as anything to do with the concurrency API), I suggest you consult Anthony Williams’ “C++ Concurrency in Action” (http://www.manning.com/williams/).
It sounds like what you are looking for is an in-depth and comprehensive reference for C++11. My notes are not designed to be that. Rather, they are designed to help people who are familiar with C++98 quickly come up to speed on the primary new language and library features in C++11.
Scott
It looks cool, but I have 3 complaints:
1)30$ is IMHO too much for PDF. But this is a minor complaint because nobody forces me to buy it.
2) I would like some “guarantee” (promise) that Scott will work for at least 1.5 y on making/keeping it up to date.
3) sample part is intro, so IMHO it doesnt represent the work. I mean i would prefer to have 5 pages from 2 chapters that actually explain something in detail than 100 pages of intro.
4) depth unknown-for example does it explain std::atomic memory orderings in detail or it just says :”on x86″ dont bother with thinking about that… does it explain seq_consistency…. Does it contains style guidelines like Herbs recent talks/posts do: use for_each with std::begin(),std::end(), use lambdas or is it just the list of the features….
5) the biggest one :( I really dont like slides as a learning material… because they are slides and they are intended to be used during lecture not like a textbook. So do the slides in later chapters have more explanations than the slides in the intro part?
There are no plans for a paper version, sorry, but the license you get with the PDF allows you to print it, if you want to. Given that the materials are likely to keep changing for quite some time, I personally think that an electronic copy is more practical. That’s what I use.
BTW, while one reason I release updates to the materials is to fix bugs, a more common reason is to add information or to improve the clarify of the explanations. People who purchased the initial version of the notes can tell you that I’ve made some pretty significant modifications to my treatment of rvalue references and move semantics in the past 15 months, and I think the current version tells a more complete story in a manner that’s easier to understand than it was initially. In my most revision of the materials, in addition to the new information on final and override that I blogged about, I also added a new slide on the potential for dangling references inside a closure when using capture-by-value inside a member function.
Because these are the materials I use when giving presentations on C++11, I have a very strong interest in making them as accurate, clear, and complete as I can, and that provides an ongoing incentive for me to improve them. I fix bugs as I become aware of them, of course, but I do lots of other things, too, and many of those things would not be practical if the materials were published in paper form.
Do you know if there will be also a paper version ? My company prefers to buy books than PDFs…
I checked on Amazon, but there is no announcement so far.
@jackj: I thought about adding the phrase “modulo bug fixes” but felt that it was probably self-evident. Also, we’re still learning more all the time about using C++11, so all guidance today is still somewhat in motion. But this is the first release of Scott’s materials that is intended to be feature-complete with the C++11 standard since the standard itself stopped moving, and it does cover the C++11 features in their final form, modulo bug-level differences.
For standards wonks, you’ll be able to find bugs in all materials for some time to come. :) For people who are looking for a solid treatment of what C++11 is, this source reflects the final C++11 standard well, and it’s the best available set of material for learning about C++11’s features.
Herb Sutter: “Today Scott Meyers announced that his fully-annotated C++11 training materials are now up-to-date with the final published standard.”
Scott Meyers: “To be frank, my training materials aren’t perfectly up to date, either. I had hoped that they were, but it’s a big standard (1353 pages), and just yesterday I received a set of bug reports from a member of the standardization committee pointing out places where my notes’ treatment of some parts of C++11 are out of sync with the final standard. “