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.


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).


Language & Standard Library
Topic Student Supervisor
Concepts Florian Schnagl Michael Petter
Coroutines Josef Schmeißer Nico Hartmann
Garbage Collection Tassilo Steinmann Julian Kranz
Parallelism TS Prashanth Swaminathan Michael Petter
Modules Maximilian Schäffeler Julian Kranz
Reflection - -
Transactional Memory Simon Griebel Michael Petter
Template Metaprogramming Sascha Sauermann Michael Petter
Ranges Joshua Rombauer Julian Kranz
Filesystem Konstantin Bauer Julian Kranz
Networking Matthias Lehner Julian Kranz
Graphics Daniel Pfaff Nico Hartmann


Topic Student Supervisor
C++ Evolution Overview Jonas Bürger Julian Kranz
Compiler Challenges - -
Verification of C++ Programs Nathan Brei Nico Hartmann
C++ Core Guidelines Volker Bischoff Julian Kranz
C++ & Security - -
Modern C++ in Different Domains - -
Design Patterns using Modern C++ Faisal Hafeez Nico Hartmann
Algorithms & Data Structures with Modern C++ Tamas Neumer Nico Hartmann
Application and Framework Development with Modern C++ Michael Kiener Nico Hartmann
"Fails Compilation" (Proposals that failed to land in the standard) - -
Unicode / Text Support in C++ Jakob Riedle Nico Hartmann
C++ Runtime Code Hotswapping Denis Blank Nico Hartmann
Functional Programming with C++ Templates Andreas Molzer Michael Petter



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: 9 ms