C++Now 2018: Matt Calabrese “Argot: Simplifying Variants, Tuples, and Futures”
Channel: CppNow
Date: 2018-06-06

http://cppnow.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: http://cppnow.org/history/2018/talks/
—
If you have worked with tuples, variants, and futures in C++, you may frequently find yourself frustrated with how complicated it can be to get seemingly simple things done, especially if coming from a language with more direct support for algebraic datatypes. Expanding tuples in anything but trivial ways requires being something of a language expert. Visiting variants can often be even worse. Forming chains of ".then" continuations (if you even have a ".then") can be a drag. These are supposed to be powerful, useful abstractions, yet they are often too complicated for most programmers.

The Argot library aims to solve some of these problems by acting as something like an ＜algorithm＞ or ＜utility＞ but for dealing with TupleLike, VariantLike, and now FutureLike concepts and the expansions of their underlying values into function arguments. Easily perform what would otherwise be complicated variant visitation. Expand tuples in more powerful ways than with std::apply. Form continuations with futures without explicitly writing complicated .then() chains. Do things that you may not have thought were possible.

This talk is on an updated and re-named version of a library from the C++ Standard proposal "A Single Generalization of std::invoke, std::apply, and std::visit" ( http://wg21.link/p0376 ). The library is planned to be added to the boost review queue sometime later this year.
— 
Matt Calabrese
Google
Software Engineer

Matt Calabrese is a software engineer working primarily in C++. He started his programming career in the game industry and is now working on libraries at Google. Matt has been involved with the Boost community for over a decade and is currently a member of the Boost Steering Committee. He has been attending C++ Standards Committee meetings since 2015, authoring several proposals targeting the standard after C++17, notably including a proposal to turn the void type into an instantiable type.
—
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
---

*--*

---