From December 4th to December 5th 2015, I attended the Meeting C++ 2015 conference in Berlin. The conference had about 450 attendees and featured two keynotes, 26 talks and two slots for lightning talks in four tracks. Attendees were mostly from Europe (about 55% German), but there were also attendees and speakers from overseas. The report for day 1 can be found here.
After a really good hotel breakfast accompanied by other attendees, I started the second day attending another C++17 topic talk: “From Iterators to Ranges: The Upcoming Evolution of the Standard Library” by Arno Schödl. In his talk Arno described aspects of the ranges library he and his team have developed at Think Cell and compared it to the ranges implementation Eric Niebler is developing for the C++17 standard library. Ranges are meant as an alternative to iterators and can be used to compose algorithms in a better way. Together with asynchronous and functional programming ranges can build features that are similar to C#’s LINQ.
The second talk picked up the coroutine topic again: “Asynchrony and Coroutines” by Grigory Demchenko. He described the ideas and implementation examples behind his Synca library, which uses Boost.Context to implement a coroutine-like class. Atop of that class it provides features and tooling that allow asynchronous programming with functions that are structured like normal synchronous functions, including the transfer of an execution context between thread pools and schedulers. The library is implemented in C++14 and can be downloaded from GitHub.
Before the lunch break I attended another talk on the B track called “The Goal and the Journey – Turning back on one year of C++14 Migration” by Joel Falcou. Joel gave an overview of different topics that came up during the migration of several libraries to the current C++ standard, with a focus on compile time issues which can arise when variadic templates are used. He showed some neat tricks on how to use parameter pack expansion instead of the canonic recursive template instantiation which can bloat compile times considerably.
The last regular talk I attended was by Ivan Cukic- It was announced as “Awaiting for the ranges: C++17”. Since there were other tasks about both coroutines and ranges voted into the schedule that took place earlier, Ivan was tempted to throw both topics out of the talk but stated that “for the” would not make for a good title. So he fell back on a comparison of ranges and coroutines and got to the conclusion that both features are in fact monads. Since I am new to the theory behind monads, I’ll have to read up on them a bit and revisit the video of the talk once it is rendered and online.
Following a short wrap up of the conference with some statistics about the Meeting C++ homepage and announcements for the next year by Meeting C++’s originator Jens Weller, the conference concluded with the second keynote. Lars Knoll, the CTO of the Qt Company and Chief Maintainer of the Qt Project, held his talk “Creating intuitive APIs” about the evolution of the Qt API and about API development in general. He touched all the topics that are important for designing a usable, not too complex API for libraries that need to be used by more than just one or two developers.
The second day confirmed my impressions from the first day: Meeting C++ is a very interesting conference which I am determined to attend again next year. Jens plans to further increase the number of attendees from 450 to 600, and since one of the Keynote speakers will be Bjarne Stroustrup himself, I have no doubt that he will reach that goal.
http://meetingcpp.com – The homepage of Meeting C++
http://meetingcpp.com/index.php/schedule15.html – This year’s schedule. Follow the links to get to the talks’ abstracts and slides
https://www.youtube.com/user/meetingcpp – The Meeting C++ Youtube channel. Videos of this year’s talks will be uploaded in the next weeks.