Thinking with Templates
The template system in C++ is a convenient tool to overcome unnecessary code bloat. However, this is only the tip of the iceberg of the potential in efficiency, readability and problem solving it can bring to the table. With the help of C++ compilers’ ability to do advanced pattern matching, programming with templates might prove to be the best approach to abstraction a practitioner needs to heighten their skills.
In this talk we will first give an overview of the power of the C++ typing system. We will then look at how one can use templates to transcend types and start writing “expressions” instead of code. Here we will also study how the new additions to C++11 and C++14 makes writing generic code easier for everyone. Finally we will see how all of this allows us to solve problems and implement algorithms in a readable and reusable way.