Lehrstuhl Informatik II   
Sprachen und Beschreibungsstrukturen      
   Home Lehre Sommersemester 17 Seminare C++ Tomorrow login

C++ Tomorrow

Dozent:Nico Hartmann
Ort/Zeit:Final Presentations: June 7 & 8, 2017
ModulNummer:IN0014, IN2107
Beschreibung:    In this seminar we will discuss the ongoing evolution of the C++ programming language.


June 14, 2017 We have set a final (hard) paper deadline: June 30, 2017.

June 6, 2017 Reminder: The seminar room is 00.12.019.

May 31, 2017 The seminar schedule is online. Please be present and prepared on both days.

March 8, 2017 We have assigned the topics and supervisors (sorry for the one day delay). You may now start research for you topic. Feel free to contact your supervisor for an appointment to discuss your ideas and your next steps.

February 22, 2017 We like to congratulate everyone who received a seat in our seminar. You are now invited to submit your preferred topics till March 3, 2017. We have now fixed the remaining dates. Presentations will take place on June 7 & 8, 2017! Due to the delay that hit the matching process, we have also shifted some of the other dates by a couple of days.

February 2, 2017 After the huge participation at the pre-course meeting, we are happy to announce that we decided to raise the number of seats from 15 to 20! Although we do decline an application process for the seats of our seminar and our influence on the actual assignment of seminars (done by the matching system) is limited anyway, we, by no means, discourage you from letting us know that you are especially enthusiastic about C++. In that case, tell me (e.g. via mail) until February 12th, why you in particular must get a seat.


In this seminar we will discuss the ongoing evolution of the C++ programming language. We will have a close look at some of the major language and library extensions that have been shipped with the most recent standards (C++14, C++17) and the ones that are in the pipeline for C++20 and beyond. These extensions are presented and their advantages, design decisions and implementation challenges are worked out and discussed with the audience. Furthermore, we will investigate how language evolution has influenced or may influence the surrounding environment like compilers, tools, frameworks and the way C++ is used in different domains.


No particular course is required, but participants must have a solid understanding of the C++ programming language. They should furthermore have a strong interest in the C++ language and its evolution. To get the most out of this seminar, attendees should have a basic understanding of programming language theory, compiler principles, software engineering, algorithms and data structures. Participants must not be afraid of reading technical specifications and documentations (like the C++ language standard).


This seminar is suitable for bachelor and master students, as long as they meet the listed Prerequisites. For successful participation you are awarded with 4 or 5 ECTS respectively, depending on your examination regulations (Allgemeine Prüfungs- und Studienordnung). The 15 20 seminar seats are assigned by the central matching system (like all other seminars). Candidates who attended the pre-course meeting may be preferred, however.

In order to acquire credits for this seminar, participants have to write a paper and give a talk on their topic. Both have to be in English. The paper should have a length of around 10 pages. A LaTeX template will be provided in the Material section. The talk should be approximately 30 minutes long, followed by a short time frame for questions and discussion.

Presentations will be given 'en bloc' on one or two days (depending on the number of participants) in the middle of summer semester 2017. Actual dates will be announced. Attendance during the talks as well as active participation in the discussion are requirements to receive the credits.


February 2, 2017, 14:00 Pre-course meeting (in room 02.07.034).

  • You will receive additional information about the seminar and the topics.

February 3 - 8, 2017 Register for your seminars of choice in the matching system.

  • After February 15, 2017 you can check to which seminar you have been assigned to.

February 15 - March 3, 2017 Let us know the topics you are interested in or propose your own topic.

March 7, 2017 Topics and supervisors are assigned.

  • You are supposed to start your research.

April 1, 2017 Finish a rough sketch.

  • Prepare a sketch of your paper (e.g. table of contents, keywords, ...) and discuss it with your supervisor.
  • Agree on the next steps and the next meetings with your supervisor.

May 7, 2017 Finish paper draft.

  • Write the first draft of your paper and discuss it with your supervisor.
  • Incorporate feedback from you supervisor.

May 28, 2017 Submit your final paper.
June 4, 2017 Submit your presentation slides.
June 7, 2017 Seminar meeting (day 1).
June 8, 2017 Seminar meeting (day 2).

June 30, 2017 Final paper deadline.

Seminar Schedule

Wednesday, 07.06.2017
Time Topic Student
09:00 - 09:45 C++ Evolution Overview Jonas Bürger
09:45 - 10:30 Filesystem Konstantin Bauer
10:30 - 10:45 15min break  
10:45 - 11:30 Networking Matthias Lehner
11:30 - 12:15 Ranges Joshua Rombauer
12:15 - 13:00 Modules Maximilian Schäffeler
13:00 - 14:00 1h break  
14:00 - 14:45 Coroutines Josef Schmeißer
14:45 - 15:30 Concepts Florian Schnagl
15:30 - 16:15 Transactional Memory Simon Griebel
16:15 - 17:00 Graphics Daniel Pfaff


Thursday, 08.06.2017
Time Topic Student
09:00 - 09:45 Template Metaprogramming Sascha Sauermann
09:45 - 10:30 Functional Programming with C++ Templates Andreas Molzer
10:30 - 10:45 15 min break  
10:45 - 11:30 Modern Text Processing with C++ Jakob Riedle
11:30 - 12:15 Application Development with Modern C++ Michael Kiener
12:15 - 13:00 Design Patterns using Modern C++ Faisal Hafeez
13:00 - 14:00 1h break  
14:00 - 14:45 C++ Core Guidelines Volker Bischoff
14:45 - 15:30 Verification of C++ Programs Nathan Brei
15:30 - 16:15 C++ Runtime Code Hotswapping Denis Blank


Example Seminar Talk with sources

Example Seminar Paper with sources



CppCon (Youtube)

angehängte Dateien:


TUM - Lehrstuhl Informatik II (Sprachen und Beschreibungsstrukturen) Thanks: Tango and TinyMCE     Generationszeit: 12 ms