Description
Template metaprogramming is similar to many functional languages; it's pure with immutable variables. This encourages a similar programming style; which begs the question: what functional features can be leveraged to make template metaprogramming more powerful? Currying is just such a technique, with increasing use cases. For example the ability to make concise point-free metafunctions using partially applied combinators and higher-order functions. Such point-free template metafunctions can be leveraged as a stand-in for the lack of type-level lambda abstractions in C++. Currently there exist tools for converting pointful functions to point-free functions in certain functional languages. These can be used for quickly creating point-free variations of a metafunction or finding reusable patterns. As part of our research we have made a point-free template conversion tool using Clang LibTooling that takes pointful metafunctions and converts them to point-free metafunctions that can be used in lieu of type-level lambdas.Period | 17 Apr 2018 |
---|---|
Event title | 2018 European LLVM Developers Meeting |
Event type | Conference |
Location | Bristol, United KingdomShow on map |
Degree of Recognition | National |
Keywords
- Compilers
- Clang
- C++
- Functional Programming
- Template Metaprogramming
- Tool
- Point-free
- Pointfree
Documents & Links
Related content
-
Activities
-
Trends in Functional Programming Symposium 2018
Activity: Participating in or organising an event › Participation in conference