Curried C++ Template Metaprogramming

    Activity: Talk or presentationInvited talk

    Description

    Rather than solely confirming aspects of correctness, types hold the potential to be the primary input in a program's construction. As a Turing complete sublanguage, C++ templates can run arbitrarily complex code at compile time. C++ templates are also a strict, functional language, though this aspect can be marginalised, owing to weak support for higher-order (meta)functions; and other omissions such as currying and type classes. In this talk we introduce a small library to allow idiomatic higher-order C++ metafunction classes to be implicitly curried, and demonstrate its application to a selection of interesting folds; with the assistance of the tacit/pointfree paradigm.
    Period9 May 2018
    Held atUniversity of Glasgow, United Kingdom
    Degree of RecognitionRegional

    Keywords

    • types
    • templates
    • C++
    • metaprogramming
    • functional programming