Meeting C++ online with Zach Laine


Details
Zach Laine will present his CppCon Talk "Making Iterators, Views and Containers Easier to Write"!
Event will be hosted on remo, tutorial: https://remo.co/remo-101
Timeline
19:00-19:30 Socializing online in Remo (in small video calls or chat)
19:30 Welcome message
20:00 ish - Talk begins
21:00 ish - Q&A
Talk details:
Writing standard-compliant iterators is surprisingly easy to get wrong. Standard containers are tedious to write, because they have such large interfaces, involving lots of similar operations. For many years, Boost.Iterator's iterator_facade and iterator_adaptor were the state of the art for automating the creation of iterators with minimal effort. However, that library has not kept up with the evolution of C++, particularly with regard to constexpr and noexcept.
Boost.STLInterfaces is a newly-accepted Boost library that solves these problems for authors of iterators and sequence containers. It does this using the same approach as C++20's std::ranges::view_interface. The view_interface template is a CRTP base that implements all the possible view member functions when inherited by a derived type containing just begin() and end(). This pattern allows the user to use Boost.STLInterfaces to write correct iterators, views, and/or sequence containers, requiring surprisingly little code.

Meeting C++ online with Zach Laine