Math.com Store
 Location:  Home » Math Books » C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond  

C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond

C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and BeyondAuthors: 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: 3.5 out of 5 stars 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



3 out of 5 stars 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.


4 out of 5 stars 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.



5 out of 5 stars 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.



5 out of 5 stars 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.


4 out of 5 stars 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





Disclaimer

Return to Math.com
Sponsored Links
Math Jobs


Quick Links
Return to Math.com
Math Tutoring
Top Selling Electronics
Textbooks
Math Jobs
Privacy
Categories
Calculators
Math Books
Math DVD
Math Games
Math Toys
Math Software
Game Systems
Math Apparel
Subcategories
Paperback
Mass Market
Trade
Related Categories
• C & C++ Windows Programming
Development
Microsoft
Computers & Internet
Subjects
• General
Languages & Tools
Programming
Computers & Internet
Subjects
• General
C
Programming
Computers & Internet
Subjects
• General
Programming
Computers & Internet
Subjects
Books
• General
Software
Computers & Internet
Subjects
Books
• Paperback
Binding (binding)
Refinements
Books
• Printed Books
Format (feature_browse-bin)
Refinements
Books