Conference | Live Schedule | Talks | Get your ticket | Slides | Set your timezone
From Acrobatics to Ergonomics - A Field Report on How to Make Libraries Helpful

Joel FALCOU
On Day 2 at 16:00 (CET/Berlin) in Track B [Opal Room and online]
Thanks to features like concepts, C++20 promised to make template meta-programming more approachable and expressive, especially for library designers. But as we quickly learned, template programming can still be surprising or frustrating — in the worst-case scenario, it's both.
In this talk, I’ll share lessons from the past 3–4 years of building high-performance, user-friendly C++ libraries, including:
- EVE, a SIMD abstraction layer designed for performance and portability.
- KUMI, a re-imagined tuple library with algorithmic support.
- KIWAKU, a toolkit for multi-dimensional arrays that aims to be efficient and ergonomic.
We’ll explore the practical challenges of designing ergonomic C++ APIs:
- Error messages that make sense: `static_assert` or concepts? How to avoid large template error stacks? ...
- APIs that align with user intuition: How do we provide options on the functions' semantics? How to design meaningful extension points, ...
- How bold design decisions can pay off: going sideways with standard practices, turning CTAD upside-down, ...
We'll discuss how C++20 features helped us reduce friction and increase clarity once we use them properly.
If you’ve ever screamed into the void over template errors, please join in!
Please login to comment