CppCon 2015: Fedor Pikus “C++ Metaprogramming: Journey from simple to insanity and back"
http://www.Cppcon.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/cppcon/cppcon2015
—
Part I: Introduction to template metaprogramming. Template metaprogramming is a variant of generic programming, a technique that uses C++ template mechanism to perform computations at compilation time, usually to generate, from a single description, executable code that depends on the properties of the data types. It can be viewed as “programming with types”. In this example-driven class we start with the overview of the metaprogramming tools (everything you wanted to know about template specializations but were afraid to ask). We will apply these tools to simple examples, such as: how to sort a sequence in order of increasing values, unless it’s a sequence of pointers, in which case we want the values of what they point to. Part II: Advanced techniques and practical applications. Simple examples of metaprogramming are fun and useful, but once you master them you start chafing at the limitations. This is C++, where we don’t suffer limitations gladly. We therefore move on to the more advanced techniques, including SFINAE, and the appropriately more advanced examples. The journey takes us back to the beginning: after all, when sorting a sequence of values vs a sequence of pointers, you don’t really care whether the pointer is smart or dumb. What you really want to know is whether “*p” compiles or not. What you really need is an “if_compiles” metaprogramming function.
—
Fedor G Pikus is a Chief Engineering Scientist in the Design to Silicon division of Mentor Graphics Corp. His earlier positions included a Senior Software Engineer at Google, and a Chief Software Architect for Calibre PERC, LVS, DFM at Mentor Graphics. He joined Mentor Graphics in 1998 when he made a switch from academic research in computational physics to software industry. His responsibilities as a Chief Scientist include planning long-term technical direction of Calibre products, directing and training the engineers who work on these products, design and architecture of the software, and research in new design and software technologies. Fedor has over 25 patents and over 90 papers and conference presentations on physics, EDA, software design, and C++ language.
—
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
Видео CppCon 2015: Fedor Pikus “C++ Metaprogramming: Journey from simple to insanity and back" канала CppCon
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/cppcon/cppcon2015
—
Part I: Introduction to template metaprogramming. Template metaprogramming is a variant of generic programming, a technique that uses C++ template mechanism to perform computations at compilation time, usually to generate, from a single description, executable code that depends on the properties of the data types. It can be viewed as “programming with types”. In this example-driven class we start with the overview of the metaprogramming tools (everything you wanted to know about template specializations but were afraid to ask). We will apply these tools to simple examples, such as: how to sort a sequence in order of increasing values, unless it’s a sequence of pointers, in which case we want the values of what they point to. Part II: Advanced techniques and practical applications. Simple examples of metaprogramming are fun and useful, but once you master them you start chafing at the limitations. This is C++, where we don’t suffer limitations gladly. We therefore move on to the more advanced techniques, including SFINAE, and the appropriately more advanced examples. The journey takes us back to the beginning: after all, when sorting a sequence of values vs a sequence of pointers, you don’t really care whether the pointer is smart or dumb. What you really want to know is whether “*p” compiles or not. What you really need is an “if_compiles” metaprogramming function.
—
Fedor G Pikus is a Chief Engineering Scientist in the Design to Silicon division of Mentor Graphics Corp. His earlier positions included a Senior Software Engineer at Google, and a Chief Software Architect for Calibre PERC, LVS, DFM at Mentor Graphics. He joined Mentor Graphics in 1998 when he made a switch from academic research in computational physics to software industry. His responsibilities as a Chief Scientist include planning long-term technical direction of Calibre products, directing and training the engineers who work on these products, design and architecture of the software, and research in new design and software technologies. Fedor has over 25 patents and over 90 papers and conference presentations on physics, EDA, software design, and C++ language.
—
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
Видео CppCon 2015: Fedor Pikus “C++ Metaprogramming: Journey from simple to insanity and back" канала CppCon
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
![CppCon 2015: Andrei Alexandrescu “Declarative Control Flow"](https://i.ytimg.com/vi/WjTrfoiB0MQ/default.jpg)
![CppCon 2019: Dan Saks “Back to Basics: Function and Class Templates”](https://i.ytimg.com/vi/LMP_sxOaz6g/default.jpg)
![CppCon 2015: Scott Schurr “constexpr: Introduction”](https://i.ytimg.com/vi/fZjYCQ8dzTc/default.jpg)
![CppCon 2019: Klaus Iglberger “Back to Basics: Move Semantics (part 1 of 2)”](https://i.ytimg.com/vi/St0MNEU5b0o/default.jpg)
![CppCon 2015: Scott Schurr “constexpr: Applications"](https://i.ytimg.com/vi/qO-9yiAOQqc/default.jpg)
![CppCon 2018: Fedor Pikus “Design for Performance”](https://i.ytimg.com/vi/m25p3EtBua4/default.jpg)
![CppCon 2015: John Lakos “Value Semantics: It ain't about the syntax!, Part I"](https://i.ytimg.com/vi/W3xI1HJUy7Q/default.jpg)
![CppCon 2017: Fedor Pikus “Read, Copy, Update, then what? RCU for non-kernel programmers”](https://i.ytimg.com/vi/rxQ5K9lo034/default.jpg)
![CppCon 2016: Arthur O'Dwyer “Template Normal Programming (part 1 of 2)”](https://i.ytimg.com/vi/vwrXHznaYLA/default.jpg)
![Advanced C++: Static Polymorphism](https://i.ytimg.com/vi/-WV9vWjhI3g/default.jpg)
![C++ Weekly - Ep 194 - From SFINAE To Concepts With C++20](https://i.ytimg.com/vi/dR64GQb4AGo/default.jpg)
![CppCon 2014: Walter E. Brown "Modern Template Metaprogramming: A Compendium, Part I"](https://i.ytimg.com/vi/Am2is2QCvxY/default.jpg)
![CppCon 2015: Andrei Alexandrescu “std::allocator...”](https://i.ytimg.com/vi/LIb3L4vKZ7U/default.jpg)
![CppCon 2016: Timur Doumler “Want fast C++? Know your hardware!"](https://i.ytimg.com/vi/BP6NxVxDQIs/default.jpg)
![C++ 11: Rvalue Reference -- Move Semantics](https://i.ytimg.com/vi/IOkgBrXCtfo/default.jpg)
![CppCon 2018: Jason Turner “Applied Best Practices”](https://i.ytimg.com/vi/DHOlsEd0eDE/default.jpg)
![CppCon 2019: Arthur O'Dwyer “Back to Basics: Lambdas from Scratch”](https://i.ytimg.com/vi/3jCOwajNch0/default.jpg)
![CppCon 2017: Herb Sutter “Meta: Thoughts on generative C++”](https://i.ytimg.com/vi/4AfRAVcThyA/default.jpg)
![CppCon 2017: Nicolai Josuttis “The Nightmare of Move Semantics for Trivial Classes”](https://i.ytimg.com/vi/PNRju6_yn3o/default.jpg)
![CppCon 2018: Bjarne Stroustrup “Concepts: The Future of Generic Programming (the future is here)”](https://i.ytimg.com/vi/HddFGPTAmtU/default.jpg)