Back To Schedule

take(5):

Adventures with Taking Elements from an Input Stream

16:30 - 18:00 Wednesday 10th May 2023 MT Flug Auditorium
Beginner
Intermediate
Advanced
Standard Library

This talk is entirely about a short example, about a dozen lines of code, involving the interaction between views::istream<T> and views::take. The behavior might be surprising, but in order to make sense of it, we have to first really deeply understand the C++ iterator model and what end() really means. Only then can we even answer the questions: is this broken? Can we fix it?

View Slides

Barry Revzin

Software EngineerJump Trading

Barry is a senior C++ developer at Jump Trading in Chicago, a technology and engineering-driven trading firm. After programming for many years, he got really into the nuances and intricacies of C++ by being unreasonably active on StackOverflow (where he is the top contributor in every standard from C++14 up through C++26). A lot of his C++ knowledge comes from just answering questions that he doesn’t know the answers to, especially when he answers them incorrectly at first.

His C++ involvement escalated when he started attending standards committee meetings in 2016, having written dozens of papers for C++20, C++23, and now C++26. You might know him from such features as deducing this, explicit(bool), conditionally trivial special member functions, if consteval, packs in structured bindings, and now, reflection.

Outside of the C++ world, Barry is an obsessive swimming fan. He writes fun data articles for SwimSwam, which led him to be able to do work with a briefly-existing professional swim team (the DC Trident). He also periodically gets to interview a bunch of Olympians.