Metaprogramming with Boost.Hana: Unifying Boost.Fusion and Boost.MPL
summary
Claims a working C++14 library, Boost.Hana, that unifies Boost.MPL and Boost.Fusion under a single purely functional interface and actually implements high-level algorithms (permutations, sort by alignment, loop unrolling, heterogeneous linear algebra). Implementation uses clever tricks like lambda-capture tuple storage and lifted integral constants to keep values in types; a Proto-ish DSL reappears in ~250 lines. Benchmarks show much better compile-time and memory behavior than Boost.Fusion/std::tuple. Current build requires recent compilers (clang trunk) but the library demonstrably works.
AI-written summary · about
chapters (6)
- 0:00Start
- 5:00WHAT'S THE PROBLEM?
- 11:39TYPE/VALUE UNIFICATION
- 19:48HANA'S BUILDING BLOCKS
- 32:53CASE STUDIES
- 43:53IMPLEMENTATION TECHNIQUES
related talks
01h 09mFunctional Programming in C++
58mThe Imperatives Must Go! [Functional Programming in Modern C++]
56mboost.tmp: your DSL for Metaprogramming
01h 06mMigration of C++ Libraries to C++14
53mProduct Types for C++2x
01h 00mLightweight Operator Fusion Using Data-Centric Function Interfaces in C++
01h 39mKeynote - C++ Metaprogramming: evolution and future direction
01h 10mThe Three Little Dots and the Big Bad Lambdas
