Tuesday, January 24, 2012

New C++ Features and C++ Texts

Without pretty fundamental changes such as concepts, it will only be a matter of time before we get a smattering of books on C++11. Some existing C++ books have been updated with a chapter to two on C++11 features. They will of course vary in quality considerably. David Vandevoorde is behind at least a couple of the new features. He has a book C++ Templates: The Complete Guide on template metaprogramming.

I vividly recall how in one programming class I TA'ed for, the professor brought the The Definition of Standard ML - Revised and some C++ books on the first day to give a feel for how elegant Standard ML and other programming languages based on principled design really are. Of course we acknowledged that the Definition and many C++ books are entirely different animals, but the whole idea of a formal specification of a language being much more concise than even prose-based descriptions of C and C++ is quite interesting. Though I did not adopt this idea in my own programming classes, it is certainly quite intimidating to behold many of these modern C++ texts. They are mostly encyclopedic in coverage (i.e., little depth) and breadth. Let's take a look at how these huge tomes fare in terms of coverage of the C++11 standard.

Stephen Prata has the 6th edition of C++ Primer Plus (6th Edition) (Developer's Library), published just this past October. The new volume add a 62 page chapter at the end on C++11. It has significant sections covering the new move semantics, lambdas, and a little on variadic templates.

Lippman has a 5th edition of C++ Primer slated to be published in July 2012.

Rao's 7th edition of Sams Teach Yourself C++ in One Hour a Day (7th Edition), slated for May 2012 publication, has sections on the new standard, but it is unclear what will be covered.

Gregoire's Professional C++ (Wrox Professional Guides), published in October 2011, sprinkles C++11 tidbits throughout. It appears to cover everything from basic C++ to testing to design patterns. It has sections on move semantics (1 page), lambdas and functors (18 pages), template aliases (1 page), auto-style type inference (4 pages), new smart pointers (3 pages), new concurrency features including futures (42 pages). It is nice that the new concurrency features are at least given some attention, but I wouldn't expect to much comprehensive material on such specific topics in these kitchen-sink style encyclopedias.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.