Concepts, tools, and techniques from boost and beyond with cd 05 edition 9780321227256 by david abrahams and. However, it will be used to generate complete functions. Dobbs journal, june 03, 2005 if youre like me, youre excited by what people do with template metaprogramming. There have been some articles dealing with template metaprogramming before over here. Dobbs journal, june 03, 2005 if youre like me, youre excited by what people do with template metaprogramming tmp but are frustrated at the lack of clear guidance and powerful tools. Template metaprograms can generate useful code when interpreted by the compiler, such as a massively inlined algorithm that is, an implementation of an algorithm which works for a specific input. Tmp is a language within the language and with it you can manipulate collections, iterators and such, at compile time. So, ill recommend the new edition of my book mentioned by the other answers. Recently, however, ive faced a problem that could not be solved by the means outlined in the article.
Concepts, tools, and techniques from boost and beyond david abrahams, aleksey gurtovoy download bok. This post starts a series of articles following the contrived and tortuous path down insanity lane. The book deals with language aspects, design patterns, examples and applications seen as case studies. Abrahams and gurtovoy have written something close to a classic. It means that a program can be designed to read, generate, analyze or transform other programs, and even modify itself while running. It can, for the most part, be considered to be programming with types in that, largely, the. Mos 4465a is an advanced financial ac gold advanced maximiser with key. A metaprogram is a program that generates or manipulates program code.
Things like template, which look really weird but behave in an even more bizarre way. However, before you get visions in your mind of robots writing code to take over the world, understand that its actually much less intense. The first portion of this book covers the basics of template metaprogramming fairly well, but what i wanted the rest of the book to cover were both advanced techniques and realworld applications. Net is designed to help readers understand the basic concepts, advantages and potential pitfalls of metaprogramming. Template metaprograms can generate useful code when interpreted by the compiler, such as a massively inlined algorithm that is, an implementation of an algorithm which works for a specific input size, and has its loops unrolled. Template metaprogramming is turingcomplete, meaning that any computation expressible by a computer program can be computed, in some form, by a template metaprogram. A macro is a piece of code that executes at compile time and either performs textual manipulation of code tobe compiled e. Everyday low prices and free delivery on eligible orders.
Jul 28, 2017 the book starts off with a few chapters presenting basic metaprogramming components. Technically metaprogramming is code that writes code. The use of templates can be thought of as compiletime polymorphism. The author follows a bottom up approach, building the knowledge from the basic techniques up to development of realworld applications covering topics such as generic algorithms, refactoring and template debugging.
While i consider myself falling rather in the camp of the aficionados, ive met a lot more people that dont have a strong interest for it, or that even find it downright disgusting, than tmp enthusiasts. With help from the excellent boost metaprogramming library, david and aleksey take tmp from the laboratory to the workplace with readable prose and practical examples, showing that compiletime stl is as able as its runtime counterpart. Dissecting template metaprogramming in the standard library. The book metaprogramming gpus with sh actually doesnt have anything to do with template metaprogramming.
The complete guide since it is also the definitive reference for templates in general. However, flow of this book is hard to understand at the first time, i have to read again and again to get exactly what the authors trying to say. These pioneers greatly influenced the field, and basically what should be written is now written. Even if the book had stopped after these chapters, it would have already brought great value. It allows even inexperienced programmers to perform compile. So far weve learned the basic constructs of template metaprogramming loops, branching, return values and some basic list operations getting the length of a list, appending and prepending elements, checking if an element is included in a list. Numeric applications often have to process n dimensional arrays or mathematical vectors.
Explanation is very detailed and example is selfexplained too. It introduces core concepts in clear, easytofollow language and then it takes you on a deep dive into the tools and techniques youll use to implement them in your. One of the first practical applications of metaprogramming was the unrolling of loops for numeric computations, which is shown here as a complete example. Aleksey gurtovoy this book explains what metaprogramming is and how it is best used. Concepts, tools, and techniques from boost and beyond pdf,, download ebookee alternative practical tips for a improve ebook reading. Youll explore plenty of realworld examples that reinforce key concepts. This book explains what metaprogramming is and how it is best used. Metaprogramming is a programming technique in which computer programs have the ability to treat other programs as their data. Lets take a look at a simple pow function and a rectangle class.
Concepts, tools, and techniques from boost and beyond with cd 05 edition 9780321227256 by david abrahams and aleksey gurtovoy for up to 90% off at. Abrahams and gurtovoy have written something close to. This book is an excellent source on the use of metaprogramming for both framework and application development. Each book in this series presents a single topic, at a technical. I hope that after completing this book, i should be able to write much more efficient and typesafer, extensible code. This book mixes a bit of metaprogramming with other template techniques. It provides the foundation youll need to use the template metaprogramming effectively in your own work. This book is aimed at any programmer who is comfortable with idioms of the standard template library stl. In this hybrid approach, source code contains two programs. However, this book impressed me very much, its coverage and depth of the contents written there. What weve done now is program a little function or subroutine that is evaluated compiletime, using tmp. By using a template parameter, the rectangle can be. Concepts, tools, and techniques from boost and beyond. Dec 22, 2004 abrahams and gurtovoy have written something close to a classic.
Pdf c template metaprogramming download full pdf book. The introduction to template metaprogramming in the guidelines ends. Great introduction to c metaprogramming by simon tatham can be found here. Numeric applications often have to process ndimensional arrays or mathematical vectors. Absolutely fantastic book im only half way done with this one as well, but id say this is better than the previous book. The output of these templates include compiletime constants, data structures, and complete functions.
291 1056 647 229 415 561 277 720 509 106 232 838 1485 776 1061 210 406 994 923 119 1001 216 130 6 1015 140 310 1217 880 1051 1213 212 1109 516 73 1193 1388 621