This month we welcome back Denis Yaroshevskiy and Gašper Ažman to discuss C++17 and more!
There are two popular exercises in C++ template meta-programming: implementing std::tuple and std::variant. However, when it comes to std::visit (an absolute must utility for variant), usually people show a very limited implementation that does not support multiple dispatch or return type deduction. They don't do it for a good reason - it tends to get messy. However, with C++17 I managed to write one that is pretty clean (for meta-programming) and supports all of the requirements. The talk is about how to do that
Denis worked on Yandex browser for a few years, and was an active contributor to Chromium, including pushing through and implementing Chromium's version of flat_set container. Active C++ enthusiast and passive C++ content consumer. Denis currently works for Bloomberg in London and is quite pleased with that.
In Liberasure, I seem to have stumbled on a "mixin pattern that actually works". I'll write a blog post about it one of these days, but it's effectively "how to do mixins in C++ well". As I can't figure out what I'd google for, I named it "sandwich mixins". Work experience suggests it's the first truly composable paradigm. Since its inception in Liberasure, other libraries have picked it up (and some have discovered something like it independently). I want to name it "Sandwich Mixins", and what better way to launch it than at C++ London?
Gašper has been trying to have the compiler prove his code since 2008, and it's been going better of late. He has written code for the web, backends, and research tools, for UC Berkeley, A9.com, and currently Citadel. He has corrected proofs in "From Mathematics to Generic Programming", and frequently attends C++ conferences.