Skip to main navigation Skip to search Skip to main content

Point-Free Templates

    Research output: Contribution to conferencePresentation

    Abstract

    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.

    Original languageEnglish
    Publication statusPublished - 16 Apr 2018
    Event2018 European LLVM Developers Meeting - Bristol Marriott Hotel, Bristol, United Kingdom
    Duration: 16 Apr 201817 Apr 2018
    https://llvm.org/devmtg/2018-04/

    Conference

    Conference2018 European LLVM Developers Meeting
    Abbreviated titleEuroLLVM
    Country/TerritoryUnited Kingdom
    CityBristol
    Period16/04/1817/04/18
    Internet address

    Fingerprint

    Dive into the research topics of 'Point-Free Templates'. Together they form a unique fingerprint.

    Cite this