C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond |  | Authors: David Abrahams, Aleksey Gurtovoy Publisher: Addison-Wesley Professional
List Price: $54.99 Buy New: $28.99 as of 11/22/2009 21:00 CST details You Save: $26.00 (47%)
New (27) Used (16) from $28.99
Seller: new_books_today Rating: 11 reviews Sales Rank: 248192
Media: Paperback Pages: 400 Number Of Items: 1 Shipping Weight (lbs): 1.4 Dimensions (in): 9.1 x 7.2 x 0.6
ISBN: 0321227255 Dewey Decimal Number: 005.133 EAN: 9780321227256 ASIN: 0321227255
Publication Date: December 20, 2004 Availability: Usually ships in 1-2 business days
| |
| Similar Items:
| |
| Editorial Reviews:
Product Description "C++ Template Metaprogramming" sheds light on the most powerful idioms of today's C++, at long last delivering practical metaprogramming tools and techniques into the hands of the everyday programmer. Since the introduction of templates, C++ programmers have discovered surprising and powerful ways to perform computation at compile-time. While the excitement generated by these capabilities among C++ experts has reached the community at large, their practical application remains out-of-reach for many programmers. Literature on C++ template metaprogramming has focused primarily on details of low-level "tricks" at the expense of strong idioms and abstractions, and without illuminating the path from metaprogramming to expressive interfaces and efficient, maintainable software. This book delivers both "big picture" ideas and practical tools. It explains what metaprogramming is, why it matters, and how the unique combination of features in C++ make it an especially powerful language for metaprogramming. It also presents the Boost Metaprogramming Library, a powerful open source framework of high-level compile-time components based on familiar STL idioms, which makes C++ metaprogramming easy, expressive, and fun.
|
| Customer Reviews:
Showing reviews 1-5 of 11
Good for gurus, too much for anyone else December 5, 2008 mtlimber (Orlando, FL) This is basically thorough documentation for the Boost MPL. Not for the faint of heart (when it comes to C++ templates), and probably not of too much use except to C++ gurus-in-training and to library writers.
Unique material November 27, 2008 wiredweird (Earth, or somewhere nearby) 1 out of 1 found this review helpful
Abrahams and Gurtovoy address a distinctive and little-known set of C++ features: behaviors of the template mechanism that go far beyond swapping "double" for "float." In fact, Lisp-like recursion, arithmetic, and list-processing features, all executed at compile time, give the C++ typing subsystem all the power of a Turing machine - but without such nice debugging features.
The authors base most of their discussion on the open-source Boost Meta-programming library (MPL), perhaps the most widely known and highly developed usage of this capability. Most of the discussion patiently describes this exotic set of capabilities, giving the reader a clear idea of what the library does and some idea of how the library does it. I came away a bit uncertain about the authors' purpose, though. I didn't see enough detail in describing the primitive C++ mechanisms for a reader to go off and use those primitives in new ways - this largely discusses the MPL library elements as black boxes, without a lot of detail about how they work. But, if the intended reader was meant to incorporate an existing library (like MPL) into an application, I didn't see enough in the way of practical examples or motivation. It's nice that API elements exist for handling lists like - but why? In what context do such lists arise? What useful work does this tool perform? Or is it just an idea book for an obfuscated C contestant?
Unless you've mastered the user-unfriendly documentation for Boost MPL or other libraries mentioned here, this really is the only book on the topic. I wish it covered everyday basics a bit better, for example checking that some class in a template parameter is derived from some other class. I look forward to the next reference on the topic, one that goes over internals of the library more thoroughly, or one that gives more examples of practical applications.
-- wiredweird
Four stars - but that might have been different if there were another book on the topic to compare it to.
It's about Metaprogramming October 21, 2008 T. Dobroth (Silicon Valley) 0 out of 1 found this review helpful
The operative word in the title is "Metaprogramming". If your looking for C++ template programming, your better off going elsewhere.
Metaprogramming is hard, uses an arcane syntax, and the compilers give you very little help. It's not for the faint of heart. BUT is this is where you want to go, then this is the book to have.
The authors take a very advanced complex topic and break it down to comprehensible chunks. They introduce you to the best metaprogramming library (Boost::MPL) and give you a comprehensive context to make useful applications.
Very good book July 6, 2008 Cumhur Guzel (Sydney, NSW, Australia) 2 out of 2 found this review helpful
I am not a meta programming expert, however I learned a lot from this great book. I suggest first to read Alexandrescu's Modern C++ first and a learn basic techniques then get this book to be able understand the mpl better.
In depth, but not intuitive May 20, 2008 Mr Squiggle (Adelaide, SA, Australia) 2 out of 2 found this review helpful
I knew in purchasing this book that most of the time it would just be talking about the Boost MPL. That shouldn't be too bad - the Boost MPL is pretty much the fore-running meta-programming library, and there has to be lots of concepts in there to be learnt too, other than library specifics, right?
Right.
This book completely lives up to this explanation. Very quickly we are into the guts of the library, even within the beginner's tutorial section. There certainly is a LOT of concepts to be learnt and used, even if externally to the MPL.
However, I found that very quickly I was having to reread and triple-read passages to try and distil a principle from the library construct being explained. They principles are there, and are good, but I find that they are not presented distinctly enough from the library itself. This results in what feels like a lot of work to really understand the book (other than just know how to use the library).
I don't consider myself slow - I got through almost all of "Modern C++ Design" (by Alexandrescu) without having to go to a computer, but here I really felt like I NEEDED to try this stuff out on a computer and attempt the problems at the end of the chapter. This book is a lot of work - beware! - and particularly it is more than I feel should be necessary, if perhaps the authors allowed themselves more time to explain principles and concepts away from the interface of their library.
However, there is a lot of knowledge here that I don't think that you can find elsewhere, and it is a topic that is, by nature, a bit mind-bending, so I am still definitely happy with the purchase.
Showing reviews 1-5 of 11
|
|
|
|